• 6.64 MB
  • 2022-04-22 13:47:47 发布

GBT25931-2010网络测量和控制系统的精确时钟同步协议.pdf

  • 227页
  • 当前文档由用户上传发布,收益归属用户
  1. 1、本文档共5页,可阅读全部内容。
  2. 2、本文档内容版权归属内容提供方,所产生的收益全部归内容提供方所有。如果您对本文有版权争议,可选择认领,认领后既往收益都归您。
  3. 3、本文档由用户上传,本站不保证质量和数量令人满意,可能有诸多瑕疵,付费之前,请仔细先通过免费阅读内容等途径辨别内容交易风险。如存在严重挂羊头卖狗肉之情形,可联系本站下载客服投诉处理。
  4. 文档侵权举报电话:19940600175。
'ICS25.040N10囝酋中华人民共和国国家标准GB/T25931—2010/IEC61588:2009网络测量和控制系统的精确时钟同步协议Precisionclocksynchronizationprotocolfornetworkedmeasurementandcontrolsystems2011-0卜14发布(IEC61588:2009,IDT)2011-05-01实施宰瞀粥紫黼訾糍瞥星发布中国国家标准化管理委员会仪1” 目次前言·⋯⋯-⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯一引言⋯⋯⋯⋯一⋯⋯⋯⋯⋯⋯⋯·⋯⋯⋯⋯--⋯一·J菹厨⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯2规范性引用文件⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯3术语和定义、缩略语⋯⋯⋯⋯··⋯⋯⋯⋯⋯⋯·3.1术语和定义⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯3.2缩略语⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯-’‘4约定⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯4.1描述性词汇形式的语法⋯⋯⋯⋯⋯⋯⋯--·4.2词用法⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯“4.3行为规范表示法⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯5PTP系统的数据类型和传输格式⋯⋯⋯⋯⋯5.1概述⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯’⋯⋯‘’5.2基本数据类型规范⋯⋯⋯⋯⋯⋯⋯’’⋯⋯‘5.3派生数据类型规范⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯。5.4传输格式⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯‘6时钟同步模型⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯‘6.1概述⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯。6.2关于网络的基本假设和实现推荐⋯⋯⋯⋯6.3PTP系统⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯‘6.4PTP报文类⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯6.5PTP设备类型⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯·6.6同步综述⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯’6.7PTP通信综述⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯·7PTP实体的特性⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯一7.1域⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯-·⋯⋯⋯⋯-7.2PTP时标⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯·7.3PTP通信⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯·7.4PTP通信媒体⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯一7.5PTP端口⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯7.6PTP发务特性⋯⋯⋯⋯⋯⋯·⋯⋯··⋯⋯7.7PTP时间特性⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯8PTP数据集⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯‘⋯一8.1数据集成员通用规范⋯⋯⋯⋯⋯⋯⋯⋯⋯8.2普通时钟和边界时钟的数据集⋯·⋯⋯-⋯8.3透明时钟的数据集⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯9PTP普通时钟和边界时钟⋯⋯⋯⋯⋯-⋯9.1PTP普通时钟和边界时钟的通用协议要求GB/T25931—2010/IEC61588:2009ⅡⅢ●,●●0,,,000加坨坞坞坞MM¨驰趴舛弘弘踮勰∞“∞钉n娼∞盯吼● GB/T25931_一2010/IEC61588:20099.2状态协议⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯9.3最佳主时钟算法⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯9.4最高级时钟⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯9.5报文处理语义⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯9.6本地时钟的改变⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯10透明时钟的PTP⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯10.1端到端和点到点透明时钟的通用要求⋯⋯⋯⋯10.2端到端透明时钟要求⋯⋯⋯⋯⋯⋯⋯⋯⋯·⋯··10.3点到点透明时钟要求⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯··11时钟偏移,路径延时,驻留时间和不对称校正⋯⋯11.1通用规范⋯·⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯·-11.2普通时钟和边界时钟的时钟偏移的计算⋯⋯⋯11.3延时请求一响应机制⋯⋯⋯⋯⋯⋯-⋯⋯-⋯⋯⋯·11.4对等延时机制⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯11.5对于PTP版本2事件的透明时钟驻留时间校正11.6对于PTP版本2事件报文的不对称校正⋯⋯⋯12时钟的同步与谐振⋯·⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯·12.1谐振⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯12.2同步⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯·⋯⋯⋯⋯⋯·一13PTP报文格式⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯13.1概述⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯--·⋯⋯⋯⋯⋯⋯13.2通用报文格式要求⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯13.3报文头⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯13.4报文尾⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯t13.5Announce报文⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯·13.6Sync和Delay—Req报文⋯⋯⋯⋯⋯⋯⋯⋯·⋯13.7Follow_Up报文⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯··⋯·13.8Delay—Resp报文⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯·13.9Pdelay_Req报文⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯·13.10Pdelay_Resp报文⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯·13.11Pdelay—Resp—Follow—Up报文⋯⋯⋯⋯⋯⋯·13.12信号报文⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯·13.13管理报文⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯·14TI。V实体规范⋯⋯⋯⋯·····⋯·⋯⋯⋯·⋯⋯⋯⋯14.1通用要求⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯·14.2实验性TI,V⋯⋯⋯⋯⋯⋯⋯⋯·⋯⋯⋯⋯·-⋯·14.3制造商和标准组织扩展TLV⋯⋯⋯⋯⋯⋯⋯·15管理⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯-15.1概述⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯15.2PTP管理机制⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯·15.3管理报文的处理⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯·15.4管理报文格式⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯-15.5管理TI.V⋯⋯⋯⋯⋯·:⋯⋯⋯⋯⋯⋯⋯⋯⋯·Ⅱ阻盯M%跗辨姐踮幽踮踮踮%盯毗吣%%%%%%%∞∞叮叮叮叽∞∞∞∞∞∞蚪%%∞∞嘶∞够 GB/T25931—2010/iEc61588:200916通用可选特征⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯·16.1单播报文协商(可选)⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯·16.2路径追踪(可选)⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯-16.3备选时标(可选)⋯⋯-⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯-⋯··17状态配置选项⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯···⋯⋯⋯⋯⋯⋯⋯⋯l7.1概述⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯·17.2选项的数据类型⋯⋯⋯⋯⋯⋯⋯·⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯17.3最高级时钟簇(可选)⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯··⋯⋯⋯⋯··17.4备选主时钟(可选)⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯·17.5单播发现(可选)⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯·17.6可接受主时钟表(可选)⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯·⋯⋯⋯⋯18兼容性要求⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯··⋯⋯⋯⋯····t18.1版本2与未来版本的兼容性⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯·18.2版本1与版本2之间的兼容性⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯·18.3报文格式和数据类型⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯·18.4命名变化⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯·⋯18.5对混合版本l和版本2系统的限制⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯·19一致性⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯19.1一致性目标⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯·19.2PTP一致性要求⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯·19.3PTP行规⋯⋯⋯⋯·⋯⋯⋯⋯⋯⋯⋯⋯⋯-⋯⋯⋯⋯⋯⋯··附录A(资料性附录)使用PTP⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯A.1概述⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯·A.2物理设计⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯A.3逻辑设计⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯·A.4组件问题⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯-A.5本地实现问题⋯⋯⋯⋯⋯⋯⋯··⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯··A.5.1概述⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯A.5.2时序问题⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯Aj5.3精度问题⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯···-A.5.4时间戳精度⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯·A.5.5稳定性问题⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯一A.6系统实现问题⋯⋯⋯·⋯⋯⋯⋯⋯·⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯·一A.7性能⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯··⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯-⋯⋯A.8有助于一致性测试的推荐⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯A.9在单播网络或具有非PTP网桥和路由器网络中的实现推荐A.9.1概述⋯⋯⋯⋯⋯⋯⋯-·-⋯⋯⋯⋯⋯⋯⋯⋯⋯·⋯⋯⋯⋯。。A.9.2单播模型中的边界时钟和透明时钟⋯⋯⋯⋯⋯⋯⋯⋯⋯A.9.3单播选项⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯A.9.4单播一致性⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯附录B(资料性附录)PTP中的时间戳和历元⋯⋯⋯⋯⋯⋯⋯B.1总则⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯-·-⋯⋯⋯⋯-··’’⋯B.2UTC、TAl和PTP历元⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯Ⅲ至墨啪Ⅲ星j星;m蟒Ⅲ瑚㈣ⅢⅢⅢⅢ三呈三呈ⅢⅢm㈨mm瑚mⅢ至!量;量!抛mmmⅢ愀m瑚姗螂mmmⅢ GB/T25931—2010/IEC61588:2009B.3标准时间源⋯⋯⋯⋯⋯·⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯··158附录C(资料性附录)驻留时问和不对称校正实例⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯159c.1概述⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯·⋯⋯⋯·¨⋯⋯⋯⋯⋯⋯⋯·159c.2用延时请求一响应机制计算⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯·⋯⋯⋯⋯⋯⋯⋯⋯··⋯159C.2.1给出驻留时间校正的主时钟、端到端透明时钟和所有单步从时钟⋯⋯·⋯⋯⋯⋯⋯⋯⋯··159c.2.2给出驻留时间和不对称计算的主时钟、点到点透明时钟和所有单步从时钟⋯⋯⋯⋯⋯⋯160c.2.3给出驻留时间和不对称计算的双步主时钟、端到端透明时钟和单步从时钟⋯·⋯⋯⋯⋯·162c.2.4给出驻留时间和不对称计算的主时钟、端到端透明双步时钟和单步从时钟⋯⋯⋯⋯⋯⋯163C.2.5给出驻留时间和不对称计算的单步主时钟、端到端透明双步时钟和单步从时钟⋯⋯⋯⋯165C.3使用对等延时机制的计算⋯⋯⋯⋯⋯⋯·⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯··-166C.3.1给出驻留时间和不对称计算的单步对等请求方时钟、端到端透明时钟和对等响应方时钟⋯166C.3.2给出驻留时间和不对称计算的单步对等请求方时钟、双步端到端透明时钟和单步对等响应方时钟⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯··⋯·⋯⋯⋯⋯⋯⋯--⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯167c.3.3给出驻留时间和不对称计算的单步对等请求方时钟、双步端到端透明时钟、双步对等响应方时钟——选项1⋯⋯⋯⋯··⋯⋯⋯·⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯169C.3.4给出驻留时间和不对称计算的单步对等请求方时钟、双步端到端透明时钟和双步对等响应方时钟——选项2⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯170c.3.5显示驻留时间和不对称计算的单步对等请求方时钟、单步端到端透明时钟和双步对等响应方时钟——选项2⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯---17lC.3.6给出从主时钟到从时钟传输时间的单步对等主时钟、双步点到点透明时钟和单步对等从时钟⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯-⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯··172附录D(规范性附录)PTP在IPV4用户数据包协议上的传输⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯174D.1概述⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯174D.2UDP端口号⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯174D.3IPv4多播地址⋯-⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯-⋯⋯⋯·⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯174D.4transportspecific字段值⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯---⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯174D.5可选值·⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯-⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯175D.6IPv4选项⋯⋯⋯⋯⋯⋯⋯⋯⋯-⋯⋯⋯⋯-⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯175D.7协议地址⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯-⋯⋯⋯-⋯⋯⋯⋯-⋯⋯⋯⋯⋯⋯⋯⋯175附录E(规范性附录)PTP在IPv6用户数据协议(UDP)上的传输⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯176E.1概述⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯176E.2UDP端口号⋯⋯⋯⋯⋯⋯⋯⋯⋯-·-⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯·176E.3lPv6多播地址⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯176E.4transportspecific字段值⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯177E.’5可选值⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯177E.6协议地址⋯⋯⋯·⋯⋯⋯⋯⋯-⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯·177附录F(规范性附录)PTP在IEEE802.3/Ethernet上的传输⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯··178F.1概述⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯·⋯-⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯】78F.2Ethertype’’⋯‘‘‘‘’’’’-’‘‘‘‘。。。⋯··。’‘+‘‘⋯·-·’’’。‘⋯··‘’’。⋯····’’。’。’‘‘‘‘‘‘’‘‘‘’‘‘‘‘‘‘‘。⋯‘⋯‘‘‘‘’’178F.3多播MAC地址⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯·:_⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯··178F.4transportspecific字段值⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯∥⋯⋯⋯⋯⋯⋯⋯⋯⋯178F.5可选值⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯179F.6协议地址⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯·⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯l79Ⅳ 附录G(规范性附录)PTP在DeviceNET上的传输⋯⋯··G.1协议·⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯·G.2事件报文时问戳点⋯⋯⋯·⋯·⋯·⋯⋯⋯⋯⋯⋯⋯⋯··G3clockIdentity--····························---·················G.4PTP报文格式⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯·⋯⋯⋯·G.5PTP的DeviceNet寻址⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯·-G.6transportspecmc字段值⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯··附录H(规范性附录)PTP在ControlNET上的传输⋯··}L1协议⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯··H.2clockIdentity⋯⋯·⋯⋯·⋯⋯⋯⋯⋯·⋯⋯·⋯⋯⋯·⋯H.3PTP报文格式⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯··H.4PTP的ControlNet寻址⋯⋯⋯⋯⋯⋯·⋯⋯⋯⋯⋯·H.5transportspecmc字段值⋯⋯⋯⋯⋯⋯⋯⋯⋯··⋯··-附录I(规范性附录)PTP在IEC61158类型10上的传输I.1背景⋯⋯J.⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯·I.2报文规范⋯⋯⋯·⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯·I.3IEC61158类型10的DI,PDU⋯⋯⋯⋯⋯⋯⋯⋯·⋯-L3.1DI。PDU的抽象句法⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯··I.3.2DLPDU字段目标地址的编码⋯⋯⋯·⋯·⋯⋯⋯⋯I.3.3字段LT的编码·⋯⋯⋯⋯⋯⋯⋯⋯⋯·⋯-⋯⋯⋯··I.3.4字段FramelD的编码⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯·⋯·I.3.5编码规范⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯·⋯··⋯⋯⋯⋯⋯··附录J(规范性附录)缺省PTP行规⋯⋯⋯⋯⋯⋯·⋯⋯-J.1概述·⋯⋯⋯⋯⋯⋯⋯·⋯⋯⋯⋯⋯⋯⋯···⋯⋯⋯⋯⋯J.2通用要求⋯·⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯-J.3延时请求一响应缺省PTP行规⋯⋯⋯⋯··⋯⋯⋯⋯⋯J.3.1标识·⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯-⋯⋯⋯⋯⋯⋯J.3.2PTP属性值⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯··J.3.3PTP选项⋯⋯⋯⋯⋯··⋯⋯⋯⋯⋯⋯⋯⋯⋯·⋯⋯一J.3.4时钟物理要求⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯·一J.4点到点缺省PTP行规⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯·一J.4.1标识⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯··J.4.2PTP属性值⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯·⋯⋯·J.4.3PTP选项⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯一J.4.4时钟物理要求⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯··附录K(资料性附录)安全协议(实验性)⋯⋯⋯⋯⋯⋯··K.1概述⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯··K.2协议综述⋯⋯·⋯⋯⋯⋯⋯·⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯..K.3通甩要求⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯·K.4挑战一响应交换⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯-K.5安全联盟更新交换⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯·K.6完整性校验值(ICV)测试⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯·K.7安全联盟查找⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯·GB/T25931—2010/IEC61588:2009180181182183184185186189190191192193193194r GB/T25931_一2010/IEC61588:2009K.8keyld检验⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯·⋯⋯⋯⋯K.9重放保护机制⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯’K.10挑战响应检验⋯⋯⋯·⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯’K.11共享密钥分发⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯K.12密钥产生⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯‘K.13安全数据集⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯’’⋯⋯’‘K.13.1概:述⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯’K.13.2密钥列表⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯······⋯⋯⋯‘K.13.3安全联盟⋯⋯⋯⋯⋯⋯⋯-⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯‘K.13.4defauitDS数据集安全变量⋯⋯⋯-·⋯⋯⋯⋯⋯⋯⋯-·K.14协议操作⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯‘K.14.1概述⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯··⋯⋯⋯⋯⋯⋯⋯⋯⋯’。K.14.2接收报文处理⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯‘K.14.3挑战处理--⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯·⋯⋯⋯⋯‘K.14.4安全传输处理⋯⋯⋯⋯⋯⋯⋯⋯··⋯⋯⋯⋯⋯⋯-⋯、K.14.5安全事件处理⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯‘K.14.6安全透明时钟处理规则⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯K.15AUTHENTICATIONTLV⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯·K.15.1概述⋯⋯⋯⋯⋯···⋯⋯···⋯⋯⋯⋯⋯⋯⋯⋯⋯’’’⋯’K.15.2tlvType··················-··-·-····-··········--·················K.15.3lengthField·······················----·-一······---·---········K.15.4lifetimeId(UInteger16)····················-·-··-·一········-K.15.5replayCounter(UInteger32)⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯‘K.15.6keyld(UInteger16)⋯⋯⋯’’’’’’’’⋯⋯⋯。’’。’‘⋯’’’’K.15.7algorithmld(UInteger8)⋯⋯⋯⋯’’’⋯⋯⋯⋯⋯⋯’K.15.8填充(Octet[M])⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯·K.15.91CV(Octet[N])⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯·K.16AUTHENTICATIoN—CHALLENGETLV⋯⋯··⋯·-K.16.1概述⋯⋯⋯⋯⋯⋯·⋯⋯⋯⋯⋯⋯⋯⋯⋯--⋯⋯⋯⋯K.16.2tlvType。·····’’’‘‘‘‘‘‘‘‘‘‘‘‘‘‘。。’’’’’。’’。’+。‘。‘‘‘‘‘‘‘‘‘’’+’’’’’’‘K.16.3lenghtField·········-··-····················-·-·····----·-·····K.16.4challengeType(UInteger8)⋯⋯⋯⋯’’⋯⋯⋯⋯⋯‘K.16.5requestNonce(UInteger32)⋯⋯⋯⋯⋯·⋯⋯⋯⋯一K.16.6responseNonce(UInteger32)······-··‘‘‘‘‘‘。。。。·-·’’。‘‘‘‘‘‘K.17SECURlTY—ASSOCIATION—UPDATETLV⋯⋯⋯·K.17.1概述⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯K.17.2tlvType·····------···················-·-----········-·-·········K.17.3lengthField·················--························--·-··--K.17.4addressType(UInteger8)⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯K.17.5nextKeyld(UInteger16)⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯K.17,6nextI。ifetimeld(UInteger16)⋯⋯⋯⋯⋯⋯···⋯⋯⋯附录1。(资料性附录)累积频标因子偏移的传输(实验性)⋯I,.1概述⋯⋯⋯⋯⋯⋯⋯---·⋯⋯⋯⋯⋯--⋯⋯⋯⋯⋯⋯Ⅵ194195195195195196198198198200201202204205206207208209 L.2使用累积频标因子的频率补偿方案的描述⋯⋯⋯⋯⋯L.3累积频标因子偏移的通用规范⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯I,.4CUM—FREqLSCAI,E—FAcTOR一0FFSETTLV规范L.4.1tlvType-·-······⋯⋯······⋯⋯⋯⋯·······-····⋯······I⋯42cumulativeFrequencyScaleFactorOffset··-·-·⋯⋯⋯参考文献⋯·⋯·⋯⋯⋯⋯⋯⋯⋯⋯⋯·⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯图l图2图3图4图5图6图7图8图9图10图1l图12图13图14图15图16图17图18图19图20图21图22图23图24图25图26图27图28图29图30图31图32图33图34图35图36Mealy型状态转换图⋯⋯⋯⋯⋯⋯··普通时钟模型⋯⋯⋯⋯⋯⋯⋯⋯⋯边界时钟模型⋯⋯⋯⋯⋯⋯⋯⋯⋯端到端透明时钟模型⋯⋯⋯⋯⋯⋯端到端驻留时间校正模型···⋯⋯⋯组合的普通时钟和端到端透明时钟点到点透明时钟模型⋯⋯⋯⋯⋯···点到点驻留时间和链路延时校正模型组合的普通时钟和点到点透明时钟简单主从时钟层次结构⋯⋯⋯⋯⋯裁剪的网状拓扑⋯⋯⋯⋯⋯⋯⋯⋯基本同步报文交换⋯⋯⋯⋯⋯⋯···链路延时测量·⋯⋯⋯⋯⋯⋯⋯⋯一时间戳产生模型⋯⋯⋯·⋯··⋯⋯⋯层次拓扑⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯线型拓扑⋯⋯⋯⋯·⋯··⋯⋯⋯⋯⋯多连接拓扑⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯完全不同技术的桥接⋯⋯⋯⋯·⋯··内部延时常数定义⋯⋯⋯⋯·⋯·⋯·传输不对称⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯端口模型⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯方差对数标定值滞后完整实现的状态机··slave—only实现的状态机⋯⋯⋯··STATE—DECISl0N—EVENT逻辑状态判定算法⋯⋯⋯·⋯⋯⋯⋯⋯·数据集比较算法,第1部分⋯⋯··数据集比较算法,第2部分⋯⋯··Announce报文接收逻辑⋯⋯⋯··Sync报文接收逻辑⋯⋯Follow—Up报文接收逻辑Delay—Req报文接收逻辑Delay—Resp报文接收逻辑延时请求响应路径长度的测量对等延时链路测量⋯⋯⋯⋯⋯允许的混合系统配置⋯·⋯⋯GB/T25931—2010/IEC61588:2009猢差耄ⅢmⅢm¨¨¨M¨n毖船弘孙卯勰四∞n弛弘弘”∞蚰曲∞阻%伯儿陀"鸺珀∞趴%踮ⅢⅦ GB/T25931~2010/IEC61588:2009图37行规印刷形式-⋯⋯⋯⋯⋯··图C.1图c.2图C.3图C.4图C.5图C.6图C.7图C.8不带不对称校正的主时钟、端到端时钟和单步从时钟带不对称校正的主时钟、端到端时钟和单步从时钟·带不对称校正的双步主站、端到端透明时钟和单步从时钟带不对称校正的主时钟、端到端透明双步时钟和单步从时钟带不对称校正的单步主时钟、双步端到端透明时钟和单步从时钟带不对称校正的单步对等响应方时钟、端到端透明时钟和对等请求方时钟⋯⋯⋯·带不对称校正的单步对等响应方时钟、双步端到端透明时钟和单步对等请求方时钟带不对称校正的双步对等响应方时钟、双步端到端透明时钟和单步对等请求方时钟选项I⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯·图C.9带不对称校正的双步对等响应方时钟、双步端到端透明时钟和单步对等请求方时钟:选项2⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯··⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯图c.10带不对称校正的双步对等响应方时钟、单步端到端透明时钟和单步对等请求方时钟选项2···⋯⋯⋯⋯⋯···⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯一图c.11带时间计算的单步对等主时钟、双步点到点透明时钟和单步对等从时钟⋯⋯··⋯⋯图G.1事件报文时间戳点⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯~图I.1PROFINET区域与其他域结合⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯··图K.1PTP安全报文处理⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯···⋯⋯一图K.2挑战处理⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯··⋯⋯⋯⋯⋯⋯⋯⋯-⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯图K.3安全传输处理⋯⋯⋯⋯⋯⋯·⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯·-图K.4安全事件处理⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯·⋯⋯··表1基本PTP数据类型⋯-⋯·⋯⋯⋯·表2domainNumber取值⋯⋯⋯⋯⋯⋯表3networkProtocol枚举⋯⋯⋯⋯⋯⋯表4NonEUI一64addressTechn0109y枚举表5clockClass规范⋯⋯⋯⋯⋯⋯⋯⋯⋯表6clockAccuracy枚举⋯⋯⋯⋯⋯⋯⋯表7timeSource枚举⋯⋯⋯⋯⋯⋯⋯⋯表8PTP状态枚举⋯⋯⋯⋯⋯⋯⋯⋯⋯表9延时机制枚举⋯⋯⋯⋯⋯⋯⋯⋯⋯表10PTPportState定义⋯⋯⋯⋯··⋯·丧11边界时钟事件的可用性·⋯⋯⋯⋯··表12数据集比较算法的信息源⋯⋯⋯⋯表13状态判定代码M1和M2的更新⋯表14状态判定代码M3的更新⋯⋯⋯⋯表15状态判定代码Pl和P2的更新⋯⋯表16状态判定代码s1的更新⋯⋯⋯⋯表17源标识符比较⋯⋯⋯⋯⋯⋯⋯⋯⋯表18公共报文头⋯⋯⋯⋯⋯⋯⋯·⋯·⋯·表19messageType字段的值⋯⋯⋯⋯⋯表20flagField的值⋯⋯⋯⋯⋯⋯⋯⋯⋯ⅧⅢ姗m㈨懈mⅢ㈣埘mmⅢ撕砒拟c?踮诣驼坫“盯弘的眈卯加陀他他他%%卯鳃 表21表22表23表24表25表26表27表28表29表30表31表32表33表34表35表36表37表38表39表40表41表42表43表44表45表46表47表48表49表50表51表52表53表54表55表56表57表58表59表60表61表62表63correctionField语义⋯⋯⋯⋯·⋯⋯⋯⋯⋯⋯·sequenceld值的例外情况的参考⋯⋯⋯⋯⋯··controlField枚举⋯···⋯⋯⋯⋯·········⋯⋯··字段logMessageInterval的值⋯⋯⋯⋯⋯⋯··Announce报文字段⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯Sync和Delay_Req报文的字段⋯⋯⋯⋯⋯⋯Follow_Up报文字段··⋯⋯⋯⋯⋯·⋯⋯⋯⋯Delay—Resp报文字段⋯⋯⋯⋯-⋯⋯⋯⋯⋯·-Pdelay_Req报文字段⋯⋯⋯⋯···⋯⋯⋯⋯⋯Pdelay_Resp报文字段⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯Pdelay—Resp—Follow—Up报文字段⋯⋯⋯⋯信号报文的接受⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯信号报文字段⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯tlvType值⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯组织特定TI.V字段⋯⋯··⋯⋯⋯⋯⋯⋯⋯-⋯管理报文的接受⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯管理报文字段⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯actionField的值⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯管理TLV字段⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯·⋯··managementld值⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯···CI,OCK—DESCRIPTION管理TLV数据字段ClockType规范⋯⋯⋯···⋯⋯⋯⋯⋯⋯⋯⋯USER—DESCRIPTION管理TI。V数据字段INITIALIZE管理TI。V数据字段⋯⋯⋯⋯⋯initializationKey枚举⋯⋯⋯⋯⋯⋯⋯⋯·⋯··故障日志severityCode枚举⋯⋯⋯⋯⋯⋯⋯FAUI。Tj。OG管理TI。v数据字段⋯⋯··TIME管理TI。V数据字段⋯⋯⋯⋯⋯⋯一CLOCK—ACCURACY管理TLV数据字段GB/T25931—2010/IEC6158812009DEFAuLT-DATA—SET管理TLV数据字段⋯⋯⋯⋯⋯·Priority1管理TI。V数据字段······⋯⋯⋯⋯⋯⋯····⋯⋯Priority2管理TI。V数据字段⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯-DoMtkIN管理TIⅣ数据字段⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯·sLAVE—ONI。Y管理TI。V数据字段·⋯⋯⋯⋯⋯⋯⋯⋯⋯CURRENT—DATA—SET管理TI。V数据字段⋯⋯⋯⋯·PARENT—DATA—SET管理TLV数据字段⋯⋯⋯⋯⋯tTIME—PRoPERTIESDATA—SET管理TI。V数据字段·UTC—PRoPERTIEs管理TI.V数据字段⋯⋯··⋯⋯-·⋯TRACEABILITY—PROPERTIES管理TLV数据字段⋯·TIMESCALE—PRoPERTIES管理TLV数据字段⋯⋯⋯·PORT-DATA—SET管理TLV数据字段··⋯⋯⋯⋯⋯⋯··LOG—ANNOUNCE_INTERVAL管理TLV数据字段⋯·ANNOUNCE—RECEIP7r_TIMEOUT管理TI。V数据字段9899100101102103104105106107109111112113114115116117118j18118119120121121122122Ⅸ GB/T25931—2010/IEC6158812009表“LOG—SYNC—INTERVAI。管理TI,V数据字段⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯-表65DELAY—MECHANIsM管理TLV数据字段⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯.表66LOG—MIN—PDEI。AY—REQ—INTERVAl,管理TI,V数据字段⋯⋯⋯⋯⋯⋯⋯·表67VERSl0N—NUMBER管理TI。V数据字段⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯.表68TRANSPARENT_CLOCK—DEFAULT-DATA—SET管理TI。V数据字段⋯·表69PRIMARY—DOMAIN管理TLV数据字段⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯.表70TRANsPARENT二CI,OCK—PORT-DATA—SET管理TLV数据字段⋯⋯⋯·表71MANAGEMENT_ERROR—STATUS的TI。v格式···⋯⋯·⋯⋯⋯⋯⋯⋯⋯⋯表72managementErrorId枚举⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯..⋯..表73REQUEST—UNICAST—TRANSMISSIONTI。V格式⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯.表74GRANT—UNICAST—TRANSMISSI(jNTLV格式⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯t表75CANCEI。一UNICAST—TRANSMISSIONTI。V格式⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯.表76ACKNOWI。EDGE—CANCEI.一UNICAST—TRANSMISSIONTI。V格式⋯⋯·表77UNICAST—NEGOTIATION—ENABLE管理TLV数据字段⋯⋯⋯⋯⋯⋯⋯-表78PATH—TRACETI,V格式⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯.表79PATH—TRACE_I。1ST管理TI。V数据字段⋯·⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯表80PATH—TRACE—ENABI.E管理TI.V数据字段⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯.⋯⋯表81ALTERNATE—TIME一0FFSET—INDICATORTI。V格式⋯⋯⋯⋯⋯⋯⋯⋯.表82AI。TERNATE-TIME—OFFSET—ENABI,E管理TI。V数据字段⋯⋯⋯⋯⋯⋯-表83ALTERNATE-TIME—OFFSET—NAME管理TLV数据字段⋯⋯⋯⋯⋯⋯⋯.表84AI。TERNATE_TIME—OFFSET二MAx—KEY管理TI。V数据字段⋯⋯⋯⋯⋯·表85AI。TERNATE_TIME—OFFSET■PROPERTIES管理TI。V数据字段⋯⋯⋯.表86GRANDMASTER—CLUSTER—TABI,E管理TI。V数据字段⋯⋯⋯⋯⋯⋯⋯.表87备选主时钟属性⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯.表88ALTERNATE—MASTER管理TLV数据字段⋯⋯⋯······⋯⋯⋯⋯⋯..⋯.....表89UNICAST—MASTER—TABLE管理TL-v数据字段⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯-表90UNICAST—MASTER—MAx—TABLE—SIZE管理TLV数据字段⋯⋯⋯⋯⋯.表91可接受主时钟表选项的操作⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯.表92ACCEPTABI。E_MASTER—TABI,E管理TI。V数据字段⋯⋯⋯⋯⋯⋯⋯⋯..--表93ACCEPTABLE—MASTER—MAX—TABLE—SIZE管理TLV数据字段⋯⋯⋯·表94AccEPTABLE—MASTER—TABI。E—ENABI。ED管理TI,V数据字段⋯⋯⋯⋯·表95版本1的Stratum到版本2的clockClass···⋯··············⋯⋯⋯⋯⋯⋯⋯.⋯.表96版本2的clockClass到版本1的Stratum⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯.表97版本1的grandmasterIsPreferred字段到版本2的Priority1字段的转换⋯⋯·表98版本2的Priority1字段到版本1的转换⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯.表99版本1的clockldentifier到版本2的clockAccuracy的映射⋯⋯⋯⋯⋯⋯⋯⋯.表100版本2的clockAccuracy到版本1的clockldentifier的映射⋯⋯⋯⋯⋯⋯⋯.表101版本1的grandmasterIsBoundaryClock宇段到版本2的Priority2字段的转换表102版本2的Priority2字段到版本1的grandmasterlsBoundaryClock字段的转换表103版本1的control和版本2的messageType字段的映射⋯⋯⋯⋯⋯⋯⋯⋯⋯.表104flagField从版本1到版本2的转换⋯⋯⋯⋯⋯⋯·⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯表105flagField从版本2到版本1的转换⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯.表106与版本I无对应部分的版本2的字段⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯.⋯⋯⋯⋯⋯⋯Y122123123123123124125127128129130131132133134136137138139140141142143144145146 表107表108表109表B.1表c.1表C.2表C.3表C.4表C.5表C.6表C.7表c.8表C.9表C.10表C.11表D.1表D.2表E.1表F.1表F.2表G.】表G.2表H.1表I.1表I.2表I.3表I.4表1.5表I.6表1.7表K.1表K.2表K.3表K.4表K.5表K.6表K.7表K.8表I..1与版本2无对应部分的版本l的字段名称对应⋯⋯⋯⋯⋯⋯⋯·⋯⋯⋯⋯·混合系统限制⋯⋯⋯⋯⋯⋯⋯-⋯··时标间的关系⋯⋯⋯⋯⋯⋯⋯⋯⋯··图C.1关键值的解释⋯-⋯⋯-⋯⋯图c.2关键值的解释⋯⋯·⋯⋯⋯·图C.3关键值的解释⋯⋯⋯⋯-·图c.4关键值的解释⋯⋯⋯⋯⋯·-图C.5关键值的解释⋯⋯⋯⋯⋯··图C.6关键值的解释⋯⋯⋯⋯⋯·图c.7关键值的解释⋯⋯⋯⋯⋯··图C.8关键值的解释⋯⋯⋯⋯---··图C.9关键值的解释⋯⋯⋯⋯⋯··图C.10关键值的解释⋯⋯⋯⋯·图C.11关键值的解释⋯⋯⋯⋯··IPv4多播地址⋯⋯⋯⋯⋯⋯⋯⋯··transportspecific字段值⋯⋯⋯⋯··lPv6多播地址⋯⋯⋯⋯⋯⋯⋯⋯··多播MAC地址⋯⋯⋯⋯⋯⋯⋯⋯··以太网传输特定字段⋯⋯⋯⋯⋯⋯..DeviceNet的clockldentity八位位组0~7⋯⋯⋯⋯·用于所有PTP报文数据包的DeviceNet报文头⋯⋯·ControlNet的clockIdentity八位位组2~7⋯⋯⋯⋯·报文映射⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯·IEEE802.3DI.PDU语法⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯·⋯⋯多播MAC地址⋯-⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯I。T(长度/类型)⋯⋯⋯⋯⋯⋯⋯⋯⋯--⋯⋯⋯⋯⋯⋯-FrameID·····-·--···-·-········-·--····--················-·······参数和属性名称的映射⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯从PTP版本2到PROFlNET的{lagField转换⋯⋯flagField.SECURE标志⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯AUTHENTlCATloNTl。V⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯algorithmld值⋯⋯⋯⋯⋯⋯⋯·⋯⋯⋯⋯⋯⋯⋯⋯..ICV和填充长度⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯AUTHENTICATION—CHAI,I。ENGETI。V⋯⋯⋯challengeType值⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯SECURITY—ASSOCIATION—UPDATETI。V⋯⋯addressType值⋯⋯⋯⋯⋯⋯⋯·-⋯⋯⋯⋯⋯⋯⋯⋯·CUM—FREQ_SCALE—FACTOR—OFFSETTI.V格式GB/T25931—2010/IEC61588:2009ⅢⅢⅢmmⅢ瑚ⅢⅢM㈣瑚mmm}兰mm㈨m至}mⅢ螂燃mm雠墨;撕嬲狮拼蝴粼勰Ⅲ 刚罱GB/T25931—2010/IEC61588:2009本标准等同采用IEC61588:2009((网络测量和控制系统的精确时钟同步协议》(英文版)。本标准与IEC61588:2009在技术内容上没有差异,仅对文本按GB/T1.1~2000的要求进行编辑性修改。所做的编辑性修改主要有:——删除IEC61588:2009的前言,按GB/T1.1—2000重新编写了本标准的前言;——删除IEC61588:2009的引言,根据IEC61588:2009的引言、第1章概述以及其他技术内容形成本标准的引言;——删除IEC61588:2009的第1章概述,重新编写本标准的第1章范围;——根据标准制定要求,对部分脚注进行修改或删除;——将原文中的“IEEEStd1588:2008”用“本标准”代替,将原文中的IEEE1588用IEC61588代替;——将原文中的“本标准版本1”和“本标准版本2”分别用“PTP版本1”和“PTP版本2”代替。PTP版本1对应于IEC61588:2004,PTP版本2对应于本标准;——根据GB/T1.1进行编辑性修改。本标准的附录D、附录E、附录F、附录G、附录H、附录I、附录J为规范性附录,附录A、附录B、附录c、附录K、附录L、附录M为资料性附录。本标准由中国机械工业联合会提出。本标准由全国工业过程测量和控制标准化技术委员会归口。本标准起草单位:机械工业仪器仪表综合技术经济研究所。本标准主要起草人:刘丹、王麟琨、谢素芬、丁露、潘长清。 GB/T25931—2010/IEC61588:2009引言本标准规定了在使用网络通信、本地计算和分布式对象等技术实现的测量和控制系统中,实现时钟精确同步的精确时间协议(PrecisionTimeProtocol,PTP),以及支持该精确时间协议所需的节点、系统和通信特性。本标准主要阐述了以下几部分内容:——时间同步模型提供了PTP协议的基本模型。给出了PTP系统、报文类、设备类型、同步机制和PTP协议通信等主要方面的概述。阐明了PTP设备类型模型和内部相关的校正过程、请求响应延时机制和对等延时机制下的报文交换以及延时测量、时间戳产生、PTP通信拓扑等。——PTP数据类型、数据集和报文格式定义了PTP系统中使用的基本数据类型和派生数据类型。给出了数据集的通用规范,以及普通时钟、边界时钟和透明时钟的数据集规范。规定了通用报文和事件报文的格式。——PTP协议要求和校正分别针对普通时钟和边界时钟,以及透明时钟规定了通用协议要求。给出了实现普通时钟和边界时钟的协议状态机和最佳主时钟算法。并针对时钟同步过程中的时钟偏移、路径延时、驻留时间和不对称规定了校正机制。——管理要求规定了管理机制和管理报文处理过程,并针对不同实现规定了通用可选特性,包括:单播报文协商、路径追踪和备选时标等。此外为协同使用最佳主时钟算法,还规定了可选状态配置以提高性能或对端口状态选择执行更多控制。——兼容性和一致性为保证实现不同PTP协议版本的设备兼容性,对报文格式、数据类型和命名等规定了兼容性要求。也规定了一致性要求,以保证不同设备的可互操作性。——PTP在不同通信网络上的传输及缺省PTP行规规定了PTP在UDP/IPV4、UDP/IPV6、IEEE802.3/Ethernet、DeviceNET、ControlNET和IEC61158类型10上的传输。规定了本标准使用的缺省PTP行规。 GB/T25931—2010/IEC6158812009网络测量和控制系统的精确时钟同步协议1范围本标准规定了在使用网络通信、本地计算和分布式对象等技术实现的测量和控制系统中,实现时钟精确同步的精确时间协议,以及支持该精确时间协议所需的节点、系统和通信特性。本标准适用于工业自动化、电信、制造、军事以及电力等领域的测量和控制系统。2规范性引用文件下列文件中的条款通过本标准的引用而成为本标准的条款。凡是注日期的引用文件,其随后所有的修改单(不包括勘误的内容)或修订版均不适用于本标准,然而,鼓励根据本标准达成协议的各方研究是否可使用这些文件的最新版本。凡是不注日期的引用文件,其最新版本适用于本标准。IEC61158—3—2:2007工业通信网络现场总线规范第3—2部分:数据链路层服务定义类型2元素IEC6115842:2007工业通信网络现场总线规范第4—2部分:数据链路层协议规范类型2元素IEC61158—5—2:2007工业通信网络现场总线规范第52部分:应用层服务定义类型2元素IEC61158—5—10:2007工业通信网络现场总线规范第510部分:应用层服务定义类型10元素IEC611586—2:2007工业通信网络现场总线规范第6—2部分:应用层协议规范类型2元素IEC611586—10:2007工业通信网络现场总线规范第6—10部分:应用层协议规范类型10元素IEC61784一l:2007工业通信网络行规第1部分:现场总线行规IEC617842:2007工业通信网络行规第2部分:基于ISO/IEC8802.3实时网络的附加现场总线行规IEC61588:2004/IEEEStd1588:2002网络测量和控制系统的精确时钟同步协议IEC620263:2007低压开关设备和控制设备控制器一设备接口(CDI)第3部分:DeviceNetIEEEStd802用于局域网和城域网的IEEE标准:概述和体系结构IEEEStd802.1AB用于局域网和城域网的IEEE标准第lAB部分:站和媒体访问控制连接发现IEEEStd802.1Q:2005用于局域网和城域网的IEEE标准第1Q部分:虚拟桥接局域网IEEEStd802.3:2005用于信息技术的1EEE标准远程通信和系统间信息交换局域网和城域网规范要求第3部分:载波侦听多路访问/冲突检测(CSMA/CD)访问方法和物理层规范ISO/IEC10646:2003信息技术通用多八位编码字符集(UCS)第1部分:体系结构与基本多文种平面3术语和定义、缩略语3.1术语和定义下列术语和定义适用于本标准。 GB/T25931—2010/IEC61588120093.1.1精度accuracy在一个测量集上,待测时钟与理想参考时钟的时间或频率误差的平均值。稳定性是度量平均值如何随着时间、温度等变量的变化而改变。精度是度量对平均值误差的偏离。3.1.2原子性过程atomicprocess具有如下特点的过程是原子性过程:直到过程的所有结果被实例化后,过程的所有输入值才允许改变,并且直到每个输出的处理完成后,过程的输出对其他过程才可见。3.1.3边界时钟boundaryclock边界时钟是在一个域中具有多个精确时间协议(PTP)端口,并维护该域中所用时标的时钟。它可作为时间源,即为主时钟;也可与另一个时钟同步,即为从时钟。3.1.4时钟clock参与精确时钟协议(PTP)的一个节点,该节点能提供从一个已定义历元开始的时间消逝的测量。注:对于完全同步的PTP普通时钟和边界时钟,该历元是所用时标上的时间点。对于PTP透明时钟,该历元是本地定义的,无需与时标关联”。3.1.5缺省default当用于属性值和选项时,缺省表示精确时钟协议(PTP)设备的配置与制造商提供的一致。3.1.6直接通信directcommunication精确时钟协议(PTP)信息在两个普通时钟或边界时钟之间的通信,该通信中间不通过边界时钟。3.1.7域domain时钟的一个逻辑组,组内的时钟可使用协议实现彼此同步,但无需与另一域内的时钟同步。3.1.8端到端透明时钟end-to-endtransparentclock在从时钟和主时钟之间,支持使用端到端(end—to—end)延时测量机制的透明时钟。3.1.9历元epoch时标的原点。3.1.10事件event用于产生和表示信号或条件的机制的抽象。3.1.11外部主(时钟)foreignmaster向其他时钟发送Announce报文的一个普通时钟或边界时钟,该普通时钟或边界时钟不是其他时钟所认可的当前主(时钟)。3.1.12小数频率偏移fractionalfrequencyoffset在被测频率和参考频率之间,定义小数频率偏移(FFO)如下:1)在本标准中,给出的表和图只用于提供信息,不包含标准实现需要的要求 GB/T25931—2010/IEC61588.2009FFo一紫其中:FO是被测频率,FR是参考频率。3.1.13最高级时钟grandmasterclock在一个域中,最高级时钟是使用协议进行时钟同步的最终时间源。3.1.14保持holdover一个时钟之前已与另一个时钟(通常为主参考或主时钟)同步/谐振,但目前基于自身内部振荡器自激振荡。当该时钟同步/谐振到其他时钟时,使用所获得的数据调整其内部振荡器的频率。也就是说,只要在精度要求范围内,时钟就处于保持或保持模式。3.1.15链路link在两个支持本标准中对等延时机制的精确时间协议(PTP)端口之间的一个网络段。对等延时机制被设计用于测量在该链路上的传输时间。3.1.16管理节点managementnode对时钟进行配置和监视的设备。3.1.17主时钟masterclock在单个精确时间协议(PTP)通信路径情况下,作为时间源的时钟。在该路径上的所有其他时钟都同步到该时钟。3.1.18报文时间戳点messagetimestamppoint在精确时间协议(PTP)事件报文内,作为该报文参考点的点。时间戳定义为报文时间戳点通过时钟参考面的时刻。3.1.19多播通信multicastcommunication一种通信模型,莅该模型中从任何PTP端口发出的每个精确时间协议(PTP)报文,能被在同一个PTP通信路径上的所有PTP端口接收和处理。3.1.20节点node在网络上能发布或接收精确时间协议(PTP)通信的设备。3.1.21单步时钟one-stepclock使用单个事件报文来提供时间信息的时钟。3.1.22普通时钟ordinaryclock在一个域中具有单个精确时间协议(PTP)端口,并维护该域中所用时标的时钟。它可作为时间源,即为主时钟;或与另一个时钟同步,即为从时钟。3.1.23父时钟parentclock一个时钟与之同步的主时钟。3 GB/T25931—2010/IEC61588:20093.1.Z4点到点透明时钟peer-to-peertransparentclock该透明时钟除了提供精确时间协议(PTP)事件传输时间信息外,还提供对连接到接收PTP事件报文端口的链路的传输延时校正。当存在点到点透明时钟时,在从时钟和主时钟之间的延时测量使用点到点延时测量机制完成。3.1.25相位变化率phasechangerate观察到的被测时间相对于参考时间的变化率。相位变化率等于在被测频率和参考频率之间的小数频率偏移。见3.1.12。3.1.26端口号portNumber在PTP节点上标识一个特定精确时间协议(PTP)端口的索引。3.1.27精度precision见3.1.1。3.1.28精确时间协议PrecisionTimeProtocol(PTP)本标准定义的协议。当作为形容词时,表示它所修饰的名词是在本标准的上下文环境中进行规定或解释的。3.1.29主参考primaryreference可溯源至国际标准的时间或频率源。见3.1.44可溯源性。3.1.30行规profile适用于设备的允许的精确时间协议(PTP)特征集。3.1.31精确时间协议(PTP)通信PrecisionTimeProtocol(PTP)communication在协议运行时所使用的信息,该信息在PTP通信路径上以PTP报文进行传输。3.1.32精确时间协议(PTP)通信路径PrecisionTimeProtocol(PTP)communicationpath一个特定网络的信号传输路径部分,该路径可实现在普通时钟和边界时钟之间的直接通信。3.1.33精确时间协议(PTP)报文PrecisionTimeProtocol(PTP)message本标准中定义的报文类型之一。3.1.34精确时间协议(PTP)节点PrecisionTimeProtocol(PTP)nodePTP普通时钟、边界时钟、透明时钟、产生或解析PTP报文的设备。3.1.35精确时间协议(PTP)端口PrecisionTimeProtocol(PTP)port用于与通信网络进行PTP通信的时钟的逻辑访问点。3.1.36被认可的标准时间源recognizedstandardtimesource被认可的标准时间源是精确时间协议(PTP)的外部源,提供可溯源到国际标准实验室的合适的4 GB/T25931--2010/1EC61588:2009时间和/或频率。这些国际标准实验室维护的时钟作为国际原子时(TAI)和协调世界时(UTC)时标的基础。这样的例子有:全球定位系统(GPS)、NTP和美国国家标准与技术研究所(NIST)时间服务器。3.1.37请求方requestor实现点到点延时机制并通过发送Pdelay_Req报文启动该机制的端口。3.1.38响应方responder对Pdelay_Req报文的接收做出响应的端口,Pdelay—Req报文的接收是点到点延时机制运行的一部分。3.1.39稳定性stability见3.1.1。3.1.40同步的时钟synchronizedclocks如果两个时钟有相同的历元,并且在任意时刻对单一事件的时问测量差异不超过规定的不确定度,则两个时钟是在该规定不确定度下的同步。3.1.41谐振的时钟syntonizedclocks如果两个时钟的短时持续时间相同,即被每次时钟测量的时间按相同的速率增加,则两个时钟是谐振的。这两个时钟可共用或不共用同一个历元。3.1.42超时timeout终止被请求活动的机制,该活动至少从请求方观点看没有在规定的时间内完成。3.1.43时标timescale从一个历元开始的时间的线性测量。3.1.44可溯源性traceability测量结果或标准值的一种属性,该属性可通过不问断的、都具有规定不确定度的比较链,将测量结果或标准值与规定的参考(通常为国家或国际标准)相关联(源自国际通用计量学基本术语EBl5]2’)。3.1.45转换设备translationdevice在实现不同传输和报文协议的区域之间,或在本标准的不同版本之间,或在不同精确时间协议(PTP)行规之间,进行协议报文转换的边界时钟或在某些情况下的透明时钟。3.1.46透明时钟transparentclock测量精确时间协议(PTP)事件报文通过该设备的时间,并向接收该PTP事件报文的时钟提供该信息的设备。见3.1.8、3.1.24。3.1.47双步时钟two-stepclock使用事件报文和后续通用报文的组合来提供时问信息的时钟。见3.1.21。2)方括号中的数字对应于参考文献的那些数字 GB/1"25931—20lO/IEC61588:20093.2缩略语ARBBMCCANCPCPFDSE2EGPSIANAICVIDIM/STIPv4、IPv6JDJDNMACMJDNISTNTPOUIarbitrarybestmasterclockControllerAreaNetworkCommunicationProfile[根据IEC617841:20073]CommunicationProfileFamily[根据IEC61784—1:2007]differentiatedserviceend—。to。.endGlobalPositioningSystemInternetAssignedNumbersAuthorityintegritycheckvalueldentlficationIEEE/TC9MeasurementSensorTechnologyCommitteeInternetProtocolversion4/6JulianDateJulianDayNumbermediaaccesscontrol[根据IEEEStd802.3:2005]ModifiedJulianDayNationalInstituteofStandardsandTechnology(见www.nist.gov)NetworkTimeProtocol(见IETFRFC1305EB7])organizationa[uniqueidenti“er(IEEE分配)注:典型地,在设备的规范或实现中使用OUI用于标识目的。OUl可标识拥有OUI相关子标识符的组织,但不要求该组织定义规范或提供硬件。可访问http://standards.ieee.org/regauth/oui/indemshtml获得1EEEouI列表。peer-to—peerphysicallayer[根据IEEEStd802.3:2005]PortableOperatingSystemInterface(见ISO/IEC9945:2003[B16])pulsepersecondPrecisionTimeProtocolsecurityassociationsSimpleNetworkTimeProtocolStartofFrameInternationalAtomicTimetrafficclass63)参考信息见第2章任意最佳主时钟控制器局域网络通信行规通信行规族区分服务端到端全球定位系统国际因特网地址分配委员会完整性校验值标识符IEEE/Tc9测量传感器技术委员会因特网协议版本4/6儒略日儒略日数媒体访问控制修改的儒略日美国国家标准与技术研究所网络时间协议组织唯一标识符点到点物理层可移植操作系统接口脉冲/s精确时间协议安全联盟简单网络时间协议帧起始国际原子时业务类别冲叭吣黔什AM∞m℃PST TLVTcoSUCMMUDP/IPUTC4约定GB/T25931"--2010/mc61588:2009type、length、value[根据IEEEStd802.1AB]typeofserviceUnConnectMessageManagerUserDatagramProtocol(见IETFRFC768EB5])/InternetProtocol(见IETFRFC791[B6])(;oordinatedUzniversalTil711e类型、长度、值服务类型无连接报文管理器用户数据报协议/因特网协议协调世界时4.1描述性词汇形式的语法4.1.1词汇形式的语法词汇形式指:——名称;——数据类型。在本标准中使用的关于词汇形式的约定如下:——类型名称:例如:ClocM0uality(无词间隔,每个词的首字母大写);——枚举成员和全局常数:例如:ATOMIC_CI,OCK(词间用下划线分隔,所有字母大写)i——报文内的字段、结构实例和变量:例如:secondsField,clockQuality,clockIdentity(字段名称至少为2个词,无词间隔,第一个词的首字母不需大写,后续词的首字母大写);——结构成员:例如:clockQuality.clockClass(结构名称后为点“.”,然后为成员名称);——数据集名称:例如:defauhDS、parentDS、portDS、currentDS、timePropertiesDS(无词间隔,字母DS前的第一个词的首字母不大写);——数据集成员:例如:defaultDS.clockQuality.clockClass(数据集名称后为点“.”,然后为类型名称,其后为点“.”,最后为变量名称);——报文名称:例如:Sync、Delay_Req(词间用下划线分隔,每个词的首字母大写);--(10calNameForSomething):角括号<)中的文本用于标准需要参考某些内容的场合,该内容的语法和词汇格式取决于本地实现和语言。当词汇格式在文本中,而不是在类型或格式定义中出现时,将该格式解释为符合文本上下文的单数、复数或所有格。4.2词用法4.2.1应(Shall)“应”的含义等效于“要求”,用于指示强制性要求,为符合本标准,强制性要求应严格遵循且不允许任何偏离。4.2.2推荐(Recommended)“推荐”用于指示选择的灵活性,但该选择带有强的倾向性。4.2.3必须(Mlust)“必须”指示不可避免的状况。4.2.4宜(Should)“宜”等效于“推荐”,用于指示:——在几个可能性中,推荐其中一个特别适合的,而不提及或不排斥其他可能性;——某一组动作是首选的,但不是必需的;——某一组动作(以否定形式)不被赞成,但不禁止。7 GB/T2593卜一2010/IEC61588:20094.2.5可以(May)“可以”等效于“允许”,用于指示在本标准范围内允许的一组动作。4.2.6能(Can)“能”用于指示物质上或物理上的可能性和能力。4.2.7可选的(Optional)标记为“可选的”条和文本不要求实现。如果实现可选项,则该条或文本的所有规范应根据本标准分别实现。注:该定义是递归的,这意味着可选项内的可选项服从相同的规则。4.2.8保留(Reserved)“保留”指示:如用在为枚举或属性赋值,则表示值被保留用于PTP的后续版本,且不用于任何其他目的;如用在报文中的字段,则表示该字段被保留用于PTP的后续版本。该字段应以规定长度出现在报文中。PTP的当前版本对保留字段没有做出解释,保留字段不应用于任何其他目的。4.3行为规范表示法状态转换图用于规定如图1所示的行为特性。每个状态转换图由下列部分构成:一名称框,表示状态;——有向箭头,指示从一个状态到另一个状态的转换。每个转换使用下列标记:一转换的使能事件标记或谓词标记}——转换的转换动作标记。State1或State2图1Mealy型状态转换图使用的表示法以抽象方式描述了状态转换图,在该转换图中动作与从一个状态到另一个状态的转换相关联。事件(Event),例如“event-1”、“event一2”和“event一3"标识状态机的输入。事件可以是操作请求和操作响应,或内部发生事件如定时器超时。谓词,例如“event一1或event一2”标识转换的使能条件。从左向右计算,找到第一个为TRUE的谓词,并选择要执行的转换,然后进入下一状态。8 GB/T25931—2010/IEC6158812009转换动作,例如“result一1“,是转换到下一状态前执行的动作。下一状态标识在完成选择的转换动作后状态机的状态。当下一状态的转换发生时,当前状态值改变。粗线状态框指示该状态框代表多个状态。由该状态框开始并终止的任何转换指示在状态上无变化。没有指示使能条件的转换,例如产生“result一3“的转换,通过未规定机制发生。除非在PTP中另有说明,引起这些机制的事件是实现特定的,不在本标准范围内。进入状态机的转换,例如“(i)”,通过没有源状态的转换箭头表示。离开状态机的转换,例如“(d)”,通过没有目的状态的转换箭头表示。注:例如:当event]或event_2的一个结果为TRUE时,stace1被下一状态值取代。在本例中,下一状态是state一2,该状态被规定为转换箭头的目标状态框的名称。在转换前,result_l发生。event一3可在state1或5tale一2下发生。状态不改变,但动作result一2作为event3的结果发生。5PTP系统的数据类型和传输格式5.1概述为不同PTP变量和报文字段规定的数据类型定义了逻辑属性,这些逻辑属性是正确操作该协议或解释PTP报文内容所必需的。实现可自由使用PTP数据类型的任意内部表示。然而,内部表示不应改变通过PTP通信的可见的任何量的语义,或协议的任何规定操作的语义。5.2基本数据类型规范所有非基本PTP数据类型源自表1所列的基本类型。这些类型不受任何特定编程语言的约束。每个类型的主要特性如下:——整型(Integer):所有整型具有确定长度,与每个类型相关联的数字指示该长度。例如:UInteger48,通过带或不带首字母“u”来指示无符号或有符号。具有这些数据类型的数遵从长度表示范围内的算术法则。数据类型范围的模数用作算术运算i例如:2个U]nterger48值的和用模数2+4s计算。有符号整数用二进制补码形式表示。——枚举型(Enumeration):所有枚举类型具有确定字段长度,与每个类型相关联的数字指示该长度。例如:Enumeration4。除非在本标准中另有说明,在枚举字段比特模式的唯一解释即为比特模式和枚举指定含义问的关联。——布尔型(Boolean):唯一的解释是在布尔代数中的逻辑值。——四位位组(Nibble)和八位位组(Octet):分别为4bit和8bit字段。唯一解释在本标准中明确定义。表1基本PTP数据类型数据类型定义BooleanTRUE或FALSEEnumeration44bit枚举值Enumeration8bit枚举值Enumerationl616bit枚举值UInterger44bit无符号整数Interger88bit有符号整数UInteger8bit无符号整数Integerl616bit有符号整数 GB/T25931—2010/IEC61588:2009表1(续)数据类型定义uInteger16bit无符号整数Integer32bit有符号整数UInteger32bit无符号整数UInteger48bit无符号整数Integer6464bit有符号整数Nibble4hit字段,不解释为数字Octet8bit字段,不解释为数字5.3派生数据类型规范5.3.1概述任何基本数据类型数组的表示格式为(datatype)[1engthField]指示数组中数据类型实例的个数,(memberRamel>:(DataType2)(memberRame2>;};其中(StructureName)是定义的数据类型的词汇名称,(DataTypel)是第一个成员的数据类型,(memberNamel>是第一个成员的词汇名称,依此类推。语法typedef(TypeName)解释为:定义了派生数据类型,它与(DataType>定义的数据类型具有相同的属性,该派生数据类型的新名称由给出。语法typedef给出。5.3.2TimeIntervalTimeInterval类型表示时间间隔。structTimeIntervalInteger64scaledNanoseconds;,;scaledNanoseconds成员是以纳秒(ns)为单位,并乘以2“6的时间间隔。超出本数据类型最大范围的正或负时间间隔,应分别编码为该数据类型的最大正值或负值。例如:2.5ns被表示为000000000002800016。5.3.3TimestampTimestamp类型表示关于历元的正时间。structTimestampUInteger48secondsField: GB/T25931--2010/IEC61588:2009UInteger32nanosecondsField;,;secoadsField成员是以s为单位的timestamp的整数部分。nanosecondsField成员是以ns为单位的timestamp的小数部分。nanosecondsField成员总是小于109。例如:+2.000000001s被表示为secondsField一000000000002⋯nanosecondsField=000000011B。5.3.4Clockldentity类型Clockldentity标识一个时钟。typedefOctetE8]ClockIdentity;5.3.5Pottldentity类型PortIdentity标识一个PTP端口。structPortIdentityC10ckIdentityc10ckIdentity;UInteger16portNumber;,;5.3.6PortAddress类型PortAddress表示PTP端口的协议地址。structPortAddress{Enumerationl6networkProtocol;UInteger16addressLength;OctetEaddressLength]addressFieldI);networkProtocol成员的值应从networkProtocol枚举中获得,见7.4.1。addressI。ength是按八位位组个数来表示的地址长度,其范围应为1~16个八位位组。addressField成员以协议的映射附录定义的格式来保存端口的协议地址,协议由networkProtoco]成员标识。addressField的最高有效八位位组被映射到addressField成员中索引为0的八位位组。5.3.7ClockQualityClockQuality表示时钟质量。structClockQualityfUInteger8clockClass;Enumeration8clockAccuracy;UInteger16offsetScaledLogVariance;);5.3.8TLVTI。v类型表示TI,v扩展字段。structTLV{11 GB/T25931—2010/IEC61588:2009Enumerationl6tlvType;UInteger16lengthField;Octet[1engthField]valueField;);所有TLV的长度应为偶数个八位位组。5.3.9PTPTextPTPText数据类型用于表示PTP报文中的文本资料。structPTPText{UInteger8lengthField;Octet[1engthField]textField;,;textField成员应编码为UTF8符号(见ISO/IEC10646:2003)。起始文本符号的最高有效八位位组应为数组中索引为0的元素。注:一个单一UT&8符号的长度可以是1~4个八位位组,因此lengthField值可大于符号个数。5.3.10FaultRecordFauhRecord类型用于构建故障日志。structFaultRecord{UInteger16faultRecordLength;TimestampfaultTime;Enumeration8severityCode;PTPTextfaultName;PTPTextfaultValue;PTPTextfaultDescription;)}faultRecordLength成员应指示FauhRecord中八位位组的个数,不包括faultRecordLength成员的2个八位位组。5.4传输格式5.4.1概述PTP协议数据单元基于5.2、5.3和17.2中定义的数据类型,由在第13章~第17章定义的PTP报文组成。PTP协议数据单元字段的内部顺序在5.4.2~5.4.4中规定。5.4.2基本数据类型5.2中定义的数值型基本数据类型格式化为:最高有效八位位组最靠近协议数据单元的起始,其后的八位位组按有效性递减顺序排列。Boolean数据类型TRUE应格式化为等于1的单个比特,FALSE格式化为等于0的单个比特。任何长度的枚举类型应格式化为同样长度的无符号整型的值,例如:Enumerationl6应格式化为数据类型UIntergerl6的值。5.4.3基本类型数组所有数组应格式化为:最低数字索引的成员最靠近协议数据单元的起始,其后的成员按逐次递增数字索引顺序排列。对于八位位组数组,带有最低数字索引的八位位组被称为最高有效八位位组。12‘ GB/T25931—2010/IEC6158812009当包含多个八位位组的字段用于表示一个数值时,最高有效八位位组应最靠近协议数据单元的起始,其后的八位位组按有效性递减排列。当单个八位位组包含基本数据类型的多个字段时,在报文字段规范中定义的每个基本类型八位位组的比特位应保持不变。例如;PTP报文头的第一个八位位组由两个字段构成的,一个是Nibble类型的比特4~7,一个是Enumeration4类型的比特0~3(见13.3.1)。5.4.4派生数据类型定义为结构体的派生数据类型格式化为:结构体的第一个成员最靠近协议数据单元的起始,其后依次跟随后续成员。每个成员应根据其数据类型被格式化。用typedef定义的派生数据类型应根据其参考数据类型被格式化。5.4.5PTP协议数据单元映射为传输格式除非另有说明,PTP协议数据单元和传输格式的映射应基于底层物理层传输规则。任何异常在本标准的某个传输特定附录或在适用的PTP行规中说明。注:PTP协议机制工作在协议栈的上层(即PTP是使用网络层或链路层服务的“应用”)。物理层传输指示传输格式。6时钟同步模型6.1概述本条提供一个模型以理解精确时间协议的运行。这些交互作用的准确规定见后续条。PTP标准规定了时钟同步协议。该协议适用于由1个或多个节点构成的、通过网络通信的分布式系统。节点被模型化为包含一个实时时钟,该实时时钟在该节点内可被用于各种目的的应用,如为数据产生时间戳,或对由节点管理的事件进行排序。该协议提供一种机制,将参与节点的时钟同步到高精度。本标准规定了:——精确时间协议;——支持PTP所需的节点、系统和通信特性。6.2关于网络的基本假设和实现推荐为确保协议的正确运行,应遵循下述基本假设和推荐,在后面条款中将对其展开详细讨论:a)PTP假设网络在每个通信路径内消除了PTP报文的循环转发(例如:通过使用生成树协议)。PTP消除了在通信路径问的PTP报文的循环转发。b)PTP能容忍偶尔发生的报文丢失、重复的报文或报文到达错序。但PTP假设这些错误很少发生。c)设计的PTP假定多播通信模型。只要保持协议行为,PTP也支持单播通信模型。PTP假设Announce报文被一个端El周期性地发送,且在通信路径内被传递到普通时钟或边界时钟的所有其他端口。如果通信路径由两个以上端I:I组成,则假设Announce报文以多播方式发送,或使用单播报文将Announce信息复制到通信路径内所有端1:1。PTP端E1通过接收多播Announce报文发现通信路径内的其他端口。当多播通信不可用时,要求另一形式的发现(例如:通过组态),见17.5示例。向所有端口发送的PTP管理报文,也要求通过多播发送报文或将管理报文复制到通信路径内的所有端日。d)像所有基于报文的时间传输协议一样,事件报文选择路径的不对称会降低PTP时问精度,见7.4.2。特别地,时间偏移误差是不对称值的1/2。不对称对PTP是不可检测的,然而,如可知该不对称,则PTP可对其进行校正。物理层可以引入不对称,例如,传输媒体不对称:通过网桥和路由器,以及在大型系统中由于事件报文采用不同路由通过网络的前向和反向路径。13 GB/T25931—2010/IEC61588:2009系统组态及部件选择应根据要求的时间精度使这些影响晟小化。在几米距离范围内的单一子网系统,对于超过几十纳秒的时间精度,不对称的影响很小。e)如果使用双步时钟,则网络必须被设计成通用报文采用与事件报文相同的路径通过透明时钟。如果无法做到这点,则将导致透明时钟不能正确计算路径延时;这种情况是不可检测的,且可能引入额外抖动和漂移,但不会中断协议。f)PTP假设从最高级时钟到任何从时钟之间形成主从同步层次的边界时钟的数量少于255,见9.3.2.5。g)网络部件(例如网桥)引入时间抖动和漂移,如果不对它们进行校正,则会降低时间传输精度。鉴于抖动和漂移经常是与流量相关的,所以网络流量模式应设计为使流量最小化以及使流量负荷变化最小化。推荐用比其他数据报文更高的优先级发送PTP事件报文,见A.5.3.3。只要可能,应使用PTP边界时钟或透明时钟替换这类设备。h)将网络协议结构化,以定义报文时间戳点。6.3PTP系统PTP系统是由PTP设备和非PTP设备的组合组成的分布式网络化系统。PTP设备包括普通时钟、边界时钟、端到端透明时钟、点到点透明时钟和管理节点。非PTP设备包括网桥、路由器、其他基础设备和可能使用的设备,如计算机、打印机和其他应用设备。本协议是分布式协议,它规定了系统中的实时时钟如何实现彼此间同步。这些时钟被组织为主从同步层次结构,主一从同步层次结构的最顶端为最高级时钟,最高级时钟决定了整个系统的参考时间。通过与使用时间信息的从时钟交换PTP时间报文来实现同步,以将从时钟的时钟调整到层次结构中主时钟的时间。PTP系统中的设备通过通信网络进行彼此间通信。网络可以包括实现不同网络通信协议的段之间的转换设备。协议在被称为域的逻辑范围内执行。除非另有说明,所有PTP报文、数据集、状态机和所有其他PTP实体总是与一个特定域相关联。一个给定的物理网络和连接到该网络的单个设备可与多个域相关联。在本标准范围内,在一个域通过本协议建立的时问独立于其他域的时间。6.4PTP报文类协议定义事件报文和通用PTP报文。事件报文是计时的报文,其中的精确时间戳在发送和接收时产生,见6.6.5。通用报文不要求精确时间戳。事件报文集包括:——Sync(见】3.6);——Delay_Req(见13.6);——Pdelay_Req(见13.9);——Pdelay—Resp(见13.10)。通用报文集包括:——Announce(见13.5);——F01low—Up(见13.7);——Delay-Resp(见13.8);——Pdelay-Resp—Follow—up(见13.11);——Management(管理,见第15章);——signaling(信号,见13.12)。Sync、Delay—Req、Follow—Up和Delay—Resp报文用于产生并传递时间信息,时间信息用于同步普14 GB/T25931—2010/IEC61588:2009通时钟和边界时钟,通过延时请求响应机制实现。Pdelay—Req、Pdelay—Resp和Pdelay—Resp—Follow—Up报文用于测量实现对等延时机制的两个时钟端口间的链路延时。在由点到点透明时钟组成的系统内,链路延时用于校正Sync和Follow—Up报文的时间信息。实现对等延时机制的普通时钟和边界时钟可使用测量的链路延时和Sync及Follow—Up报文中的信息实现同步。Announce报文用于建立同步层次结构。管理报文用于查询和更新由时钟维护的PTP数据集。这些报文也用于定制PTP系统、初始化和故障管理。管理报文在管理节点和时钟间使用。信号报文用于时钟问所有其他目的的通信。例如:信号报文可用于协商主时钟与其从时钟间的单播报文速率。所有报文可通过标准类型、长度、值(TI。V)扩展机制进行扩展。例如:PATH—TRACE报文扩展可用于检测欺诈帧,关于欺诈帧的详细内容见16.2.1。6.5PTP设备类型6.5.1概述PTP设备有5种基本类型,如下:——普通时钟;——边界时钟;——端到端透明时钟;——点到点透明时钟;——管理节点。5类设备实现协议的一个或多个部分。PTP使用2种机制测量PTP端1:1间的传输延时。第一个是延时请求响应机制,该机制使用Sync、Delay_Req、Delay—Resp和Follow—Up报文(如需要),见11.3。第二个是对等延时机制,该机制使用Pdelay—Req、Pdelay—Resp、和Pdelay—Resp—Follow~Up报文(in需要),见11.4。普通时钟和边界时钟的端1:3可以实现其中任意一个机制。端到端透明时钟的端口与这些机制无关。点到点透明时钟的端口使用对等延时机制。这两个机制不在同一通信路径上交互使用。此外,对等延时机制被限制用在某些拓扑结构,在这些拓扑结构中每个点到点端口与至多一个其他同类端口进行PTP报文通信,见11.4.4。对不同时钟类型的使用限制如下:——具有实现了对等延时机制的端口的普通时钟和边界时钟,以及点到点透明时钟,仅能连接到某些拓扑结构,在这些拓扑结构下实现了对等延时机制的端口与也实现了对等延时机制的单个端口进行PTP报文通信,见11.4.4。除了仔细设计的网络外,这将排除使用端到端透明时钟和不支持使用对等延时机制的PTP的网桥,例如普通网桥。——实现了延时请求一响应机制的普通时钟和边界时钟端1:3,以及端到端透明时钟,可被连接到不使用对等延时机制的端口的任何拓扑结构。这排除了在这样的系统里使用点到点透明时钟。——带有支持两种机制的端1:3的边界时钟,可用于桥接支持不同机制的区域。6.5.2普通时钟普通时钟的模型见图2。 GB/T25931--2010/IEE61588:2009图2普通时钟模型普通时钟通过基于单一物理端口的两个逻辑接口与网络通信。事件接口用于发送和接收事件报文,该事件报文由基于本地时钟值的时间戳发生块加入时间戳。通用接口用于发送和接收通用报文。在一个域内的普通时钟支持协议的单一副本且具有单一PTP状态。在一个系统中,普通时钟可以作为最高级时钟,或作为主从层次结构内的从时钟。普通时钟维护两类数据集,分别是时钟数据集和端口数据集。时钟数据集如下:a)defaultDS:描述普通时钟的属性;b)currentDS:与同步相关的属性;c)parentDS:描述父时钟(普通时钟与之同步的时钟)和最高级时钟(在主从层次结构中最高层的时钟)的属性;d)timePropertiesDS:时标属性。端口数据集包含端口属性,端口属性包括PTP状态。协议机:——发送和接收PTP报文;——维护数据集;——执行与端口关联的状态机;——如果端口处于从时钟状态(同步到一个主时钟),端口基于接收到的PTP时间报文和产生的时间戳计算主时钟时间。如果普通时钟的端口处于从时钟状态,则本地时钟的控制回路将其时钟调整到与主时钟的时间一致。如果该端口处于主时钟状态,则本地时钟自由运行或可能同步到外部时间源,如全球定位系统(GPS)。如果该端口处于主时钟状态且普通时钟是该域的最高级时钟,则本地时钟典型地同步到可溯源到TAI和UTC的外部时间源,如GPS系统。在一些应用中,如工业自动化,普通时钟也可与应用设备相关联,如传感器或执行器。在电信应用中,普通时钟可以与时间分界设备相关联。本地时钟对这些设备提供时间支持,如图2中所示。6.5.3边界时钟边界时钟的模型如图3所示。16 GB/T25931—2010/IEC61588:2009本地时钟N端口边界时钟控制回路时间内部数据总线端口1靖口2时间獗产生事件接口通用接口端口月PTP协议机墙口蠡据集:‘imrtDS·foreignMasterDS图3边界时钟模型边界时钟典型地具有几个物理端口,且每个物理端口通过两个逻辑接口:事件接口和通用接口,与网络通信。除了下述特性外,边界时钟的每个端口与普通时钟的端口类似:a)时钟数据集对边界时钟的所有端口是共用的;b)本地时钟对于所有边界时钟的所有端口是共用的;c)每个协议机具有解析所有端口状态的附加功能,以确定哪个端口提供了用于同步本地时钟的时间信号。与同步相关的报文建立了主从层次结构,并发送信号(见6.4),这些报文在边界时钟的协议机内终止,不被转发。管理报文被边界时钟的其他端口转发,且管理报文的转发应服从系统内对这些报文传输的限制。17 GB/T25931—2010/IEC6158812009图3所示边界时钟模型仅对于PTP报文是适用的。对于所有非PTP报文,边界时钟相当于普通网络部件,例如:网桥、中继器或路由器。边界时钟典型地仅用作网络元素,且一般不与应用设备相关联,如传感器或执行器。6.5.4端到端透明时钟端到端透明时钟的模型见图4。RC速度估计和控制RE相对于主时钟的速度估计图4端到端透明时钟模型端到端透明时钟像普通的网桥、路由器或中继器一样,转发所有的报文。但是对于PTP事件报文,如图4所示的驻留时间桥测量PTP事件报文的驻留时间(报文通过透明时钟所需的时间)。这些驻留时间在一个特定字段进行累积,该特定字段是PTP事件报文或相关的后续报文(Follow—Up或Pdelay_18 GB/T25931—2010/IEC61588:2009Resp—Follow_Up)的correctionField字段。校正是基于事件报文在进入和离开透明时钟时产生的时间戳的差来完成的。实现了网络协议要求的对校验和的任何更新。注意:对于通过透明时钟的所有路径或在同一路径的连续报文,驻留时间不要求相同,所以对于每个输出端口和报文,校正更新值和校验和是特定的。任意一对端口的校正过程如图5所示。进入报文离开报文图5端到端驻留时间校正模型计算驻留时间所使用的时间戳是基于本地时钟产生的时问戳。由于从时钟使用这些累积的驻留时间调整由主时钟提供的时间,所以重要的是:对于应用要求的精度,由主时钟和透明时钟的速率差异导致的任何误差应是可以忽略的。主时钟和本地时钟的速率(本质上是两个时钟对时刻的定义)可能相差0.02%,则引入的误差能达到测量的驻留时间的0.02%。这样,对于1ms的驻留时间,最大误差是200ns。这个误差可能是大的不可接受,可通过几个可能的方法降低该误差。一种方法(在11.3中对其展开讨论)是使本地时钟的速率与主时钟的相同,即本地时钟与主时钟同步。该同步可通过观测接收到的Sync报文和Follow—Up报文(如出现)中的时间信息来完成,此时间信息已做过上行驻留时间校正,见图4中的块RC(速率控制)。已做过上行驻留时间校正的最高级时间是RC中速率估计和控制块的输入(见标记为“最高级时间”的箭头)。相应的本地时间也是该块的输入。速率估计和控制块使用主时钟和对应的本地时间序列,以估计主时钟和本地时钟速率的比值。然后速率估计和控制块使用此估计的速率比值来调整(即控制)本地时钟速率。注意:本地时钟速率的调整不需要物理上调整振荡器频率(即模拟实现);使用固定频率的本地振荡器来计算主时钟速率和本地速率的比值,并将本地时钟的时间戳乘以该比值:即数字实现)也是可以接受的。RC描述方案的关键在于该方案是以闭环方式运行,即速率估计和驻留时间测量时使用的本地时间是相对于速率调整后的本地振荡器的。这意味着在一个节点上对振荡器的速率调整会影响到下行节点的调整,因为在下行节点中使用驻留时间来调整主时钟的时间。另一种在某些应用中可能有用的降低驻留时间误差影响的方法是:使用自由运行的本地时钟,见图4中块RE(速率估计)。在这种情况下,不调整本地振荡器的频率,允许它自由运行。每个时钟基于自由运行时钟测量Sync报文的本地驻留时间。测量的驻留时间被加入到Sync或Follow—Up报文的19 GB/T25931—2010/IEC61588:2009correctionField字段,见11.3。每个本地时钟也计算本地自由运行时钟速率与最高级时钟速率的比值。该比值是基于接收到的Sync和Follow—Up报文中的时间戳计算得到的,这里的时间戳已经通过加入correctionField进行了校正。尽管correctionField没有反映准确的驻留时间,得到的比值相比简单使用原时间戳,仍然极大地降低了抖动,而且仍然具有正确的平均值。此外,如果驻留时间相对于速率比值的测量间隔足够大,在最坏情况下连续通过透明时钟的相位误差累积将小于使用第一种方法的误差累积,但对于许多非最坏情况下会导致更大相位累积。速率比值的本地值必须在每个时钟内维护,用于校正Delay_Req报文的驻留时间,如下所述。此外,每个本地时钟计算用该比值校正过的驻留时间和未校正的驻留时间的差值,这些差值也必须被累积并传递给从时钟。如使用该方法,它连同用于累积的行规特定TLV应在行规(见19.3)中进行规定。使用该方法,在计算从时钟与最高级时钟的偏移量之前,从时钟必须将累积的差值加入到接收到的Sync报文或Follow—Up报文的correctionField。端到端的透明时钟也校正Delay—Req报文的驻留时间。但是,由于该方法中的振荡器是自由运行的,Delay—Req报文的驻留时间测量值必须使用本地时钟速率和最高级时钟速率的比值进行校正,该比值的计算和保存如前所述。对于Delay—Req报文,这是时钟操作方面的唯一变化。使用该技术,对Pdelay_Resp报文的处理与Sync报文完全一样,必须有规定的TI,V用于此目的。对Pdelay—Req报文的处理与Delay—Req报文一样。注l:在决定使用哪个方法之前,重要的是评估相比应用误差预算可能的误差。例如:如果主时钟和从时钟之间的所有时钟的总的驻留时间是lOms,则在每个中间时钟的未校正的本地时钟速率的最大误差小于该值的200×10_1,或2ps。在许多设计中,总的驻留时间应相当低,且任一种机制都可给出满意的结果。注2:PTP节点的实现需考虑支持多个域所要求的资源。由于资源所限造成的无法实时处理协议可能会导致同步性能的退化、抖动或协议失效。当选择节点和设计系统时,用户需清楚这种限制。端到端透明时钟可能被用作网络元件,或可以与应用设备关联,如传感器或执行器。在后一种情况下,将普通时钟与透明时钟结合,以提供对应用设备的实时支持。这种组合设备的模型见图6。在图6中,当普通时钟是从时钟时,时间信息包含进入时间戳。当普通时钟是主时钟时,时间信息包含离开时间戳。驻留时间桥将进入的PTP时间报文、Announce报文、由进入Sync报文产生的进入时间戳以及任何内部时间校正传递给普通时钟协议机。协议机计算基于此信息的准确时间,并将其作为输入发送给本地时钟。如果普通时钟是主时钟,它应发起带有报文时间戳的Sync报文和Follow_Up报文,该报文时间戳参考普通时钟的本地时钟,并且基于内部时间校正和离开时间戳。实际上端到端透明时钟和普通时钟功能可以共享一个公共物理时钟。20 GB/T25931—2010/IEC61588:2009RC速度估计和控制RE相对于主时钟的速度估计图.6组合的普通时钟和端到端透明时钟6.5.5点到点透明时钟点到点透明时钟的模型如图7所示。点到点透明时钟与端到端透明时钟在校正和处理PTP时间报文的方式上不同,在其他所有方面两者完全一致。2l GB/T25931—2010/IEC61588:2009点到点透明时钟的每个端口具有一个额外的块,如图7所示。该块用于计算每个端口同另一个节点上相似配置的端口间的链路延时,这两个端口共享该链路,即链路对等点。鉴于不希望在点到点透明时钟间出现非点到点设备,链路对等点存在于另一个支持对等延时机制的时钟。链路延时的计算是基于与链路对等点交换Pdelay_Req报文、Pdelay_Resp报文和可能的Pdelay_Resp~Follow_Up报文。作为这些交换的结果,点到点透明时钟的每个端口都知道链路延时。与校正和转发所有PTP时间报文的端到端时钟不同,点到点透明时钟仅校正和转发Sync和Follow_Up报文。在这些报文中相应的correctionField被更新,包括点到点透明时钟内Sync报文的驻留时间以及接收Sync报文端口的链路延时的更新。RC速度估计和控制RE1相对于主时钟的速度估计RE2相对于邻近时钟的速度估计图7点到点透明时钟模型 GB/T25931—2010/IEC6158812009校正过程如图8所示。离开PTP时间报文包含Sync数据包驻留时间和其通过实际进人链路的链路延时的校正。通过点到点时钟系统的Sync包路由的改变可能导致Sync包从不同的链路进入点到点透明时钟。鉴于点到点透明时钟基于每个Sync包选择的实际链路和内部路径来校正驻留时间和路径时间,在测量精度范围内的离开时间信息总是准确的。因此,为从时钟提供的时间信息总是反映通过点到点透明时钟网络的实际路径。对比端到端校正情况,从时钟等待基于Sync报文和Delay—Resp报文的组合的新路径延时值,鉴于在校正值出现在从时钟之前这些报文需要通过整个新路径,将等待更长的时间。进入Sync报文离邢vnc或FoIlow_Up报文图8点到点驻留时间和链路延时校正模型使用对等延时机制的路径延时测量不与基于延时请求一响应机制的路径延时测量相互作用。结果是,点到点透明时钟仅能与支持对等延时机制的时钟端口工作。使用点到点透明时钟,主时钟仅需要发布Sync报文和Follow—Up报文,及响应Pdelay—Req报文。它不接收Delay—Req报文,所以处理工作负荷独立于一个给定端口服务的点到点时钟数目。同样地,端到端透明时钟仅支持延时请求响应机制,不支持对等延时机制。如果网络在一个区域内包含点到点透明时钟,在另一个区域内包含端到端透明时钟,则这些区域仅能通过边界时钟连接。计算驻留时间和链路延时时间使用的时间戳,是基于本地时钟产生的时间戳。因为从时钟使用这些累积的驻留时间和链路延时时间校正主时钟提供的时间,重要的是:任何由于主时钟和透明时钟速率差异所导致的误差对于应用要求的精度应是可忽略的。因为主时钟和本地时钟(本质上是两个时钟对时刻的定义)的速率可能相差0.02%,则引入的误差为测量的驻留时间的0.02%。这样对于1ms的驻留时间,最大误差是200ns。该误差可能大的无法接受,有几个可能降低误差的方法。一种降低最大误差的方法(在11.4中对其展开讨论)是使本地时钟的速率与主时钟相同,即本地时钟与主时钟同步。该同步可通过观测的时间信息来完成,时间信息在接收到的Sync报文和Follow—Up报文(如存在)中,且已校正过上行驻留时间和链路延时,见图7中的块RC(速率控制)。已校正过任何上行驻留时间的最高级时间是RC中速率估计和控制块的输入(见标记为“最高级时钟时间”的箭头)。相应的本地时间也是该块的输入。速率估计和控制块使用主时钟和对应的本地时间序列,以估计主时钟和本地时钟速率的比值。速率估计和控制块使用此估计的速率比值来调整(即控制)本地时钟速率。注意:本地时钟速率的调整不必物理改变(即模拟实现)振荡器频率;使用固定频率的本地振荡器来计算主时钟速率和本地速率的比值,并将本地时钟的时间戳乘以该比值(即数字实现)也是可以接受的。RC描述的方案的关键方面在于该方案是以闭环方式运行,即速率估计和驻留时间测量时使用的本地时间是相对于速率调整过的本地振荡器的。这意味着在一个节点上对振荡器的速率调整影响到下行节点的23 GB/T25931—2010/IEC61588:2009调整,因为在下行节点中驻留时间被用于调整主时钟时间。另一种在某些应用中可能有用的降低驻留时间误差影响的方法是使用自由运行的本地时钟,见图7中块REl(主时钟速率比值估计)。在这种情况下,不调整本地振荡器的频率,允许它自由运行。每个时钟测量基于自由运行时钟的Sync报文的本地驻留时间。测量的驻留时间被加到Sync或Follow—Up报文的correctionField字段,见11.4。每个本地时钟也计算本地自由运行时钟速率与最高级时钟速率的比值。该比值是基于接收到的Sync和Follow—Up报文中的时间戳计算得到的,这里的时间戳已经通过加人correctionField进行了校正。尽管correctionField没有反映准确的驻留时问,得到的比值相比简单使用原时间戳,仍然极大地降低了抖动,而且仍然具有正确的平均值。此外,如果驻留时间相对于速率比值的测量间隔足够大,在最坏情况下在连续通过透明时钟的阶段误差累积将小于使用第一种方法的误差累积,但对于许多非最坏情况下会导致更大阶段累积。此外,每个本地时钟计算用该比值校正过的驻留时间和未校正的驻留时间的差值,这些差值也必须被累积并传递给从时钟。如使用该方法,它连同用于累积的行规特定TI。v应在行规(见19.3)中进行规定。使用该方法,在计算从时钟与最高级时钟的偏移量之前,从时钟必须将累积的差值加到接收到的Sync报文或Follow—Up报文的correctionField.使用这两种方法,Sync或Follow—Up报文的correctionField也必须进行链路延时校正,见11.4。使用对等延时机制测量链路延时(见6.6.4)。如果点到点透明时钟谐振到如RC块所示的主时钟,则对等延时测量也可使用谐振时钟完成。但是如果测量透明时钟相对于最高级时钟的速率,并如REl块使用该速率,则使用自由运行的本地时钟完成对等延时测量。在这种情况下,链路延时误差等于接收Pdelay—Req报文和发送Pdelay—Resp报文之间所经过的时问,即t。一t。(见6.6.4和图13)乘以透明时钟和相邻时钟之间的小数频率偏移。为消除链路延时的这部分误差,使用包含在连续Pdelay—Resp报文,和可能的Pdelay—Resp—Follow—Up报文中的时间戳信息来测量透明时钟和相邻时钟之间的频率偏移,见图7中RE2(相邻速率比值估计)块。注意:为完成该测量,分开发送Pdelay_Req接收时间(f。)和Pdelay—Resp发送时间(t3)是必要的(见11.4.3)。点到点透明时钟可用作网络元件,或可以与应用设备关联,如传感器或执行器。在后一种情况下,将普通时钟与透明时钟结合,以提供对应用设备的实时支持。这种组合设备的模型见图9。在图9中,当普通时钟是从时钟时,时间信息包含进入时间戳。当普通时钟是主时钟时,时问信息包含离开时间戳。当时钟是从时钟时,驻留时间桥将进入的PTP时间报文、Announce报文、由进入Sync报文产生的进入时间戳,以及任何内部时间校正传递给普通时钟协议机。协议机计算基于这些报文的准确时间,并作为输入发送给本地时钟。如果普通时钟是主时钟,它应发送带有发送时间戳的Sync报文和Follow—Up报文,该时间戳参考普通时钟的本地时钟,并且基于内部时间校正和离开时间戳。实际上点到点透明时钟和普通时钟功能可以共享一个公共物理时钟。6.5.6管理节点管理节点是具有下述特点的PTP设备:a)具有一个或多个到网络的物理连接;b)作为PTP管理报文的人机接口或编程接口;c)可以与任何时钟类型结合。6.6同步综述6.6.1概述在协议的正常执行中有两个阶段:——建立主从层次结构;——同步时钟。 GB/T2593卜一2010/IEC61588:2009本地时钟数,,-、时间PTp协议机据相对于邻近oc、BC或\一/集Tc的本地时钟速度估计黼乎个端口可选)控制回路I]厂lV仓时间信息:一稼比值计I1·SyncL7‘FollowUpL几_、应用功鳇/·进ASync对阄鬃(作为从站)辅U·离,:FSync时间缸(作为主站)·内部校正字段’。。一I‘Announce(例如:传感嚣、执行嚣)/,,7一,/一///一端一卜\一端。一*卜—一\/驻留时间桥/卜+I端Mr/f本撇张时钟f\、螭。卜——一lI/\’\J,,,,,///7、、><、、、、、\\\\、、、、、、谐振到主时钟的相对于主时钟的本地本地时钟时钟速度估计(可选的)回选的)一主时钟主时钟蛹]I⋯”Il搿l二辊l\/厂八一本地I+付RC速度估计和控制RE相对于主时钟的速度估计图9组合的普通时钟和点到点透明时钟6.6.2建立主从层次结构6.6.2.1概述在域内,普通时钟和边界时钟的每个端口执行协议状态机的单独副本。对于“状态决定事件”,每个端El检查该端口接收到的所有Announce报文的内容。使用最佳主时钟算法,对Announce报文内容和与普通时钟或边界时钟相关联的数据集进行分析,以决定时钟每个端口的状态。25 GB/T25931—2010/IEC51588:20096.6.2.2PTP状态机普通时钟和边界时钟的每个端口维护PTP状态机的单独副本。该状态机定义端口的允许状态和状态间的转换规则。决定主从层次结构的主要“状态决定事件”是接收Announce报文和announceInterval(Announce报文的间隔)结束。决定主从层次结构的端口状态如下所述:a)MASTER:端口是在其服务路径上的时间源;b)SLAVE:端口同步到路径上具有处于MASTER状态的端口的设备;c)PASSIVE:端口不是路径上的主时钟,也不同步到主时钟。6.6.2.3最佳主时钟算法最佳主时钟算法比较描述两个时钟的数据,以确定哪些数据描述更好时钟。该算法用于确定由本地时钟端口接收到的几个Announce报文描述的时钟中,哪一个是最佳时钟。它也可用于确定一个新发现的时钟——外部主时钟是否好于本地时钟。描述外部主时钟的数据包含在Announce报文中的grandmaster字段。描述本地时钟的数据包含在时钟的defaultDS数据集中。最佳主时钟算法由两个单独的算法组成:——数据集比较算法;——状态决定算法。数据集比较算法是基于按下述先后顺序对属性的成对比较:a)Priority1:用户可配置标记,表示一个时钟属于一有序时钟集,从该时钟集中选出主时钟。b)clockClass:定义时钟的TAI可溯源性的属性。c)clockAccuracy:定义时钟精度的属性。d)offsetScaledLogVariance:定义时钟稳定性的属性。e)Priority2:用户可配置标记,为其他相当时钟提供良好排序。f)cIockldentity:基于唯一标识符的决定性判据。除了此先后顺序,当两个Announce报文反映相同的外部主时钟时,“距离”被使用,“距离”由本地时钟和外部主时钟之间的边界时钟个数来测量。“距离”在Announce报文的stepsRemoved字段指示。在带有循环路径的PTP系统中该条件会发生,这些循环路径不能由PTP以外的协议移除。数据集比较算法无歧义地选择两个时钟中的一个作为“更好的”或“拓扑更好的”。状态决定算法在数据集比较算法结果的基础上确定端口的下一个状态——推荐的状态——是MASTER、SLAVE,或PASSIVE中的哪一个,以及确定本地时钟类是否小于128,见7.6.2.4。端口协议机根据协议状态机的当前状态估计该推荐的状态,以确定端口的下一个实际状态。6.6.2.4简单主从层次结构在域内的普通时钟和边界时钟中建立主从层次结构的过程,如图10所示。图10简单主从时钟层次结构 GB/T25931—2010/IEC61588:2009在这个示例中,普通时钟一l处于层次结构中的最高级位置,被称为最高级时钟。边界时钟1的端口1对于最高级时钟是从时钟(被标记为s)。在边界时钟一1上的所有其他端口对于连接到这些端口的时钟是主时钟。这样,边界时钟2的端口一1对于边界时钟一l是从时钟,依此类推。仅普通时钟和边界时钟维护这种形式的状态,且仅边界时钟建立主从层次结构中的分支点(即路径1、2、3、4、5可能包含透明时钟,但这些时钟不加入到主从层次结构,也不维护这种形式的状态)。6.6.2.5裁剪网状拓扑图11所示为协议将一个网状网络简化为树形主从层次结构的案例。当底层的桥接或路由协议不能消除循环路径时,上述处理发生。在图11中,认为普通时钟1已被最佳主时钟算法选定为最高级时钟。在边界时钟中,最佳主时钟算法已选择了端口状态以构建树,如图所示。裁剪的路径用虚线标记。对于每个边界时钟,最佳主时钟算法选择一个端口作为从时钟端口,其他端口被设置为MASTER状态或PAssIVE状态。最佳主时钟算法确保在每个段上只选择一个单主时钟端口。图11裁剪的网状拓扑6.6.3同步普通时钟和边界时钟在PTP系统中,通过在链接两个时钟的通信路径上交换PTP时间报文,实现普通时钟或边界时钟的同步。例如:在图lo中,边界时钟一1通过在通信路径1上交换报文实现与普通时钟一1的同步。同步报文交换的基本模式如图12所示。27 GB/T25931—2010/IEC61588:2009主时钟时间从时钟时间L“,?~IFollow—Up、、、\~//DelaYReq/—上一-./、\、DelayResp’\\\从站已知的时间戤图12基本同步报文交换报文交换模式如下所述:a)主时钟向从时钟发送Sync报文,并注明发送报文的时间t。。b)从时钟接收Sync报文,并注明接收报文的时间t。。c)通过如下方式,主时钟向从时钟传输时间戳t。:1)在Sync报文中嵌入时间戳t。。这要求某些类型的硬件处理,以得到最高的精度。2)在Follow—Up报文中嵌入时间戳t,。d)从时钟向主时钟发送Delay—Req报文,并注明发送报文时的时间t。。e)主时钟接收Delay—Req报文,并注明接收报文时的时间t。。f)通过在Delay_Resp报文中嵌入时间戳t。,主时钟将时间戳传输给从时钟。在交换报文结束时,从时钟拥有所有4个时间戳。这些时间戳可被用于计算从时钟与主时钟的偏移量,以及计算报文在两个时钟间的平均传输时间(在图12中即为f—ms和t-sm的平均值)。偏移量和传输时间的计算是假设主时钟到从时钟的传输时间与从时钟到主时钟的传输时间相等。任何在传输时间上的不对称将导致时钟偏移量计算值的误差。不对称会造成计算的平均传输时间与实际的传输时间不同。.28屯k GB/T25931—2010/IEC61588:20096.6.4支持点到点路径校正的时钟的链路传输延时测量在实现对等延时机制(见6.5.5)的两个端口间测量链路延时的机制如图13所示。该测量被所有实现此机制的端口执行。共享一个链路的两个端口独立实现测量,因此两个端口都知道链路延时。这允许在6.5.5中描述的校正不考虑Sync报文的方向。重要的是:即使端口被用于消除循环拓扑的非PTP算法所阻塞(blocked),仍可在其上进行该测量,以便如果Sync报文通过的路径发生改变时,最新的链路延时测量仍可在所有链路上进行(见6.5.5)。链路延时测量开始时,端口1发出Pdelay—Req报文并为Pdelay—Req报文产生时间戳t。。端口2接收Pdelay—Req报文并为该报文产生时间戳t。。端口一2返回Pdelay—Resp报文并为该报文产生时间戳t。。为最小化由于两个端口之间的频率偏移产生的误差,端口2在接收到Pdelay—Req报文后应尽快返回Pdelay—Resp报文。端口一2执行下面任意一个动作:a)在Pdelay—Resp报文中返回时间戳t。和t,的差值;b)在Pdelay—Resp—Follow—Up报文中返回时间戳t2和t。的差值;c)分别在Pdelay—Resp和Pdelay—Resp—Follow—up报文中返回时间戳t2和t。。当端VI一1接收到Pdelay_Resp报文时产生时间戳£。。端口1使用这4个时间戳计算平均链路延时。端口l时间靖H2时间\\、\Pdclav_Req\//PdeIayResp//,,,,i/,一7/,,一7/,7PelayRespFollowUp图13链路延时测量 GB/T25931—2010/IEC61588:2009传输时间t-ms和tsm的任何不对称会将误差引入链路延时的计算值中。如果产生时间戳t,、t:、t。和tt的机制不与发出Sync报文的最高级时钟使用相同的时刻定义,则小的但可能很严重的误差被引人链路延时测量。该误差的源是在最高级时钟和点到点时钟中振荡器频率的微小差异。此外,如果在两个点到点时钟的振荡器频率之间有差异时,则周转时间t。~t。会造成在点到点时钟中存在小的但可能很严重的误差。如果该误差很严重,则在点到点时钟中的振荡器能频率同步(即谐振)到最高级时钟的振荡器,或在计算的两个振荡器问的频率差异基础上,计算和校正该误差。6.6.5报文时间戳产生在发送和接收任何事件报文时,产生时间戳事件。当报文的时间戳点通过节点和网络间的边界时,时间戳事件发生。时间戳(见图12和图13)产生的模型见图】4。厂时间图14时间戳产生模型PTP时间报文从一个时钟的PTP应用代码中发出,由另一个时钟的PTP应用代码接收和处理。这些报文典型地具有在网络中使用的通信协议物理层规定的前导码。前导码之后是一个或多个协议特定报文头,然后是用户数据如PTP有效负荷。对于每个这样的传输机制,本标准在PTP时问报文中规定了一个特定点,通常为帧信号的开始,作为可辨识点被称为报文时间戳点。当PTP报文通过节点的协议栈,且报文时间戳点通过协议栈内的定义点时,产生时间戳。该定义点可以在应用层,在图14中标记为⋯C’;在内核或中断服务程序中,标记为⋯B’;或在协议栈的物理层中,标记为“A”。通常,该点离实际网络连接越近,则由通过较低层所用时间的波动引入的时间误差越小。时间戳在物理层产生的情况下,经常会使用某些类型的硬件辅助电路(用虚线标记)。在这种情况下,通过正常路径外的路径将时间戳传递给PTP代码,时间戳后跟着PTP时间报文本身。为确保时间戳与正确报文相关联,硬件辅助电路经常从PTP时间报文(与时间戳一起被传递给PTP代码)中捕捉附加信息。当设计数据包识别器、时间戳发生器和在物理层完成的任何形式的PTP硬件辅助电路时,在物理层产生PTP时间戳的实现必须考虑传输格式的映射(见5.4)。设计在媒体访问控制(MAC)层和物理层(PHY)之间,或甚至在物理层内产生时间戳的设备是可能的。在这样的设备内,所有或部分PTP代码很可能在低级半导体内嵌入并执行,而不使用操作系统。30 GB/T25931—2010/IEC61588:20096.7PTP通信综述6.7.1PTP通信拓扑6.7.1.1概述在仅由边界时钟和普通时钟组成的系统中,PTP操作为PTP报文产生非循环图结构,而不考虑实际底层网络连接,后续技术由Perlman[B22]描述。在所有其他情况下,PTP假设底层桥接或路由协议确保PTP报文转发避免环路。特别地,协议假设在通信路径内多播PTP报文不会形成不确定的环路。协议不假设:由PTP端口发送的多播报文仅在接收边界时钟的一个端口接收。协议不假设在一个PTP端口发送的多播报文的仅一个副本被另一个PTP端r7接收;然而,对多个副本的接收影响传输时间的精度,因此应对网络进行设计以避免这种行为。6.7.1.2层次拓扑不同的应用倾向不同的拓扑。对于许多系统,优先使用图15所示的层次拓扑。图15层次拓扑除了用虚线标记的“循环”路径,图15中所示的其他设备形成树型层次结构,边界时钟在树中形成了分支点。因为边界时钟可有许多端口,这种拓扑允许大量的设备与在任何从时钟和最高级时钟之间的少数边界时钟同步。在此例中,假定虚线路径不存在。如果边界时钟一1被选为最高级时钟,如图所示,则中间边界时钟的最大数量是1。最坏的情况是其中一个普通时钟,如时钟一3,被选为最高级时钟。则到最远从时钟,如时钟一6,边界时钟的最大数量是3。如6.2所述,协议期望底层拓扑避免转发环路。在图15中,如果有虚线路径,则存在涉及到3个边界时钟的环路。在6.6.2中描述最高级时钟和状态决定算法的操作为PTP报文打开该环路。6.7.1.3线型拓扑一些应用要求如图16所示的长线型拓扑,而不是图15所示的星型或层次拓扑。图16中所示为端到端透明时钟的两个长线型链,其中边界时钟一1作为最高级时钟。 GB/T25931m2010/IEC61588:2009母t罡图16线型拓扑普通时钟和边界时钟间的同步涉及两个时钟间PTP时间报文的交换,例如在路径一A上。这些PTP时间报文对于系统中的其他时钟是不可见的。基于PTP时间报文,这种主一从时钟对中的从时钟执行某些类型的伺服机制以降低时钟偏移误差。按普通网桥或路由器方式工作的透明时钟通过该时钟转发PTP时间报文。此外透明时钟测量在其内部PTP时间报文所用的时间。这些“驻留”时间在PTP时间报文的correctionField字段中累积,这允许从时钟校正时间戳,从而有效移除可能由网桥引入的时间波动。缺点是:主时钟,本例中的边界时钟1,不得不处理来自线型链中所有从时钟的PTP时间报文(即Delay_Req),而不是来自一个临近的边界时钟。注:这种缺点对主时钟的影响能通过使用点到点透明时钟或边界时钟避免。6.7.1.4在多连接拓扑中的快速重新配置在许多应用中,设备被放置在多个相连的拓扑中,例如:图17所示的网状或环路。在这些网状或环路中,备选路径被非PTP协议逻辑地移除以形成非循环拓扑。路径失效的情况下,这些外部协议重新配置网络以恢复连接。由于PTP运行在底层快速重新配置的网络的顶部,在重新配置后,PTP可能不得不重新调整在主时钟和从时钟之间路径长度的校正。点到点透明时钟被设计用于在本环境下使用。 C叵丑。囝sGB/T25931—2010/mc61588:2009£至卜+涩m1]图17多连接拓扑图17所示是连接到网状拓扑的几个点到点透明时钟。点到点透明时钟的运行依赖一些能消除网络中循环路径的外部协议。与端到端透明时钟的情况一样,点到点透明时钟常与普通时钟相关联用于传感器或其他设备。两类时钟的差异在于路径长度校正的方法。假设在普通时钟一1—1(最高级时钟)和普通时钟一1—2(从时钟)间的初始路径是非PTP协议确定的A、B、G、E、D。来自普通时钟一1—1的Sync报文,由点到点时钟一1—1针对其在点到点时钟内的驻留时间和链路延时A进行校正。同样,点到点时钟一2—1进一步对其驻留时间和链路延时B进行校正,依此类推。所以普通时钟1—2接收到的Sync报文,其在点到点时钟一1—1、21、22和卜2中的驻留时间和链路延时A、B、G和E已校正。也支持对等链路延时机制的普通时钟一l-2校正最后一个链路延时D。假设对网络进行重新配置,使这两个时钟之间的新路径是A、c、D。点到点时钟一1—1完成与之前相同的校正。但是在此情况下,点到点时钟一1—2直接从点到点时钟11接收Sync报文,所以对驻留时间和之前已经测量过的链路延时c进行校正。正是由于对所有链路的链路延时的预先测量(无论是否起作用),才允许这种快速重新配置。6.7.1.5在不同网络协议间的桥接不要求所有PTP通信路径使用相同的底层通信媒体或技术。边界时钟用于在不同网络传输技术间桥接,如图18所示。在图18中,边界时钟一1和普通时钟一l、普通时钟一3和普通时钟5被假定通过标记为A的实现了一种技术(例如:UDP/IP)的网络路径进行通信。边界时钟一2和普通时钟2、普通时钟一4和普通时钟6通过标记为B的实现了第二种技术(例如:DeviceNet)的网络路径进行通信。其中一个边界时钟,图18中的边界时钟一2,是一个在端口2支持技术A以及在其他端口支持技术B的网桥。 GB/T25931—2010/IEC61588:2009r——]匕剁r——]l普通时钟_2i厂1l普通时钟6I................一图18完全不同技术的桥接在大多数情况下,这种网桥不仅涉及网络传输协议的改变,如在上面例子中UDP/IP和DeviceNet之间,也可能涉及其他PTP特性,如更新速率。在这种情况下,边界时钟是维护足够的PTP状态以完成桥接功能的唯一设备。在一些情况下,要求的唯一桥接功能是转换数据包格式或其他物理层发出的(信号)。在这些情况下,因为不要求PTP状态信息,所以设计透明时钟完成桥接是可能的。6.7.2系统启动当时钟上线时,为提供更多有序行为,普通时钟或边界时钟在可配置的时间间隔内侦听来自主时钟的Announce报文。如果在这个时间段内没有接收到Announce报文,该时钟假定在“更好的”时钟出现前它就是主时钟。当时钟被加入或删除、时钟特性改变或连接拓扑改变,在PRE—MASTER状态下实现了一个支持系统更有序重新配置的附加机制。在这种状态下,除了不将某些报文类放置在端口通信路径上,时钟端I:1的行为应与它处于MASTER状态时的行为一致。时钟端口应保持在PRE—MASTER状态足够长的时间,以允许在系统内点间传输的改变,这些点在本地时钟和该端口可见的可能主时钟之间。7PTP实体的特性7.1域域由一个或多个PTP设备组成,这些设备按照协议的定义相互通信。域应定义PTP报文通信范围、状态、操作、数据集和时标。PTP设备可以加入多个域中,但除非在本标准中另有说明,不同域的协议运行和时标是独立的。注l:限制PTP在一个域内运行和通信的机制可能涉及到,例如:通信特定技术,如路由器表配置,限制物理连接以及应用层处理PTP报文的domainNumber字段的可靠性。注2:PTP节点的实现者需要考虑支持多个域所要求的资源。这对于普通时钟和边界时钟尤为正确,因为普通时钟和边界时钟相比透明时钟需维护更多的状态。由于资源的限制造成不能以实时模式处理协议,可能导致协议同步性能降低、波动,或协议失效。当选择节点和设计系统时,用户需要意识到该限制。由取值范围为0~255的整数(见表2),domainNumber,对域进行标识。 表2domainNumber取值GB/T25931—2010/IEC61588:2009值(十进制)定义O缺省域1各选域12备选域23备选域34~127用户定义域128~255保留domainNumber为0的域作为缺省域。domainNumber的值应是可配置的,且遵从PTP行规规定限制。7.2PTP时标7.2.1概述域的时标由最高级时钟建立。PTP支持下述两类时标:——时标PTP:在正常运行时,历元是PTP历元且时标是连续的,见7.2.4,时间测量的单位是Sis(在旋转的大地水准面上实现);——时标ARB(任意):在正常运行时,历元由管理程序设置,且在正常运行期间允许对其复位,在管理程序调用之间,时标是连续的。额外的调用管理程序可能导致整个时标的不连续。7.2.2历元历元是一个域的时标的原点。PTP历元是1970年1月1日00:00:00TAI,也是1969年12月31日23:59:51.999918UTC。注1:PTP历元与通用可移植操作系统接口(POSIX)算法的历元相同,该算法将从历元开始经过的时间转换到日时的ISO8601:2004印刷表示法,见ISO/IEC9945:2003[B16]}i1ISO8601:2004EBl7]。注2:在通用时标间转换的信息见附录B。7.2.3UTC偏移量当历元是PTP历元时,使用timePropertlesDs.currentUtcO[[set的值计算uTC时间是可行的。timePropertiesDS.currentUtcOffset的值应为:timePropertiesDS.currentUtcOffset--TAIUTC。注:在2006年1月1日0时UTC,UTC比TAI延迟33s。在该时刻currentUtcOffset的PTP定义的值为十33s(ServicedelaRotationTerrestre,ObservatoiredeParis[B23])。7.2.4域内的时间测量在域内,时间是从历元开始测量的经过时间。7.3PTP通信7.3.1报文传输模型尽管本标准是基于多播模型制定的,如果协议的行为被保持也允许基于单播模型的实现。7.3.2报文属性所有PTP相关通信通过PTP报文实现。PTP报文具有下述属性:——报文类;——报文sourcePortIdentity;——报文类型;——报文的sequenceId;——定义可选项的标记。35 GB/T25931~2010/IEC61588:20097.3.3报文类7.3.3.f事件报文事件报文类由下述报文类型组成:a)Sync:主时钟将Sync报文发送给它的从时钟。Sync报文包含其发送时间或跟随的Follow—Up报文包含该时间。接收节点可以使用Sync报文测量从主时钟到从时钟的数据包传输延时。Sync报文在PTP端口参考面的出现是一个事件,本地时钟应基于本地时钟值为该事件分配时间戳(syneEventlngressTimestamp)或(syncEventEgressTimestamp)。b)Delay_Req:DelayReq报文请求接收节点使用DelayResp返回Delay_Req报文被接收到的时间。Delay—Req报文在PTP端口参考面的出现是一个事件,本地时钟应基于本地时钟值为该事件分配时间戳(delayReqEventIngressTimestamp)或(delayReqEventEgressTimestamp)。c)Pdelay_Req:PTP端口将Pdelay—Req报文发送给作为对等延时机制(见11.4)~部分的另一个端口,以确定端V1间链路的延时。Pdelay_Req在PTP端口的参考面的出现是一个事件,本地时钟应基于本地时钟值为该事件分配时间戳或(pdelayRespEventEgressTimes~tamp>。应按7.3.4中的规定为事件报文分配上述时间戳。7.3.3.2通用报文通用报文类由下述报文类型组成:a)Announce:Announce报文提供发送节点和它的最高级时钟的状态和特性的信息。当执行最佳主时钟算法时接收节点使用该信息;b)Follow—Up:在双步普通时钟或边界时钟(见3.1.4.7)中,Follow—Up报文为特殊Sync报文传送(syncEventEgressTimestamp)值;“Delay—Resp:Delay_Resp报文向发送Delay—Req报文的从时钟端口传送是t。。和t。。的均值,即一(t。。。+t。。)/2。delayAsymmetry的值对于计算主时钟到从时钟或响应方到请求方方向的实际延时(即在11章中使用的t。;)是必需的。在许多情况下,delayAsymmetry的值低于同步应用的误差要求。属性delayAsymmetry的定义如下:t。。一(meanPathDelay}+delayAsymmetryt,。一Y。具有属性clockldentity和portNumber的类型PortIdentity的两个portIdentityA和B进行如下比较:,·a)如果A.clockIdentity小于B,clockldentity,则AB;c)否则,如果A.portNumber值小于B.portNumber值,则AB;e)否则,A—B。具有属性clockIdentity和portNumber的类型PortIdentity的portldentityA和类型Clockldentity的clockIdentityB进行如下比较:a)如果A.clockldentity小于B.clockIdentity,则AB;c)否则,B,见11.4。数据类型应为TimeInterval。如果portDS.delayMechanism成员的值是端到端(E2E),则值应为0。初始化值应为0。8.2.4.4portDS数据集可组态成员8.2.4.4.1portDS.IogAnnounceIntervalportDS.109AnnounceInterval的值应为以2为底announceInterva[平均值的对数,见7.7.2.2。8.2.4.4.2portDS.announceReceiptTimeoutportDS.announceReceiptTimeout的值应为announceInterval的整数倍,见7.7.3.1。注:announceInterval等于2邮瞧“n”“m⋯。的值。8.2.4.4.3portDS.109SyncIntervalportDS.109syncIntervaI的值应为以2为底用于多播报文的SyncInterval平均值的对数,见7.7.2.3。注:对于单播传输速率应在单个端口基础上分别协商,不受本条约束。8.2.4.4.4portDS.delayMechanismportDS.delayMechanism的值应指出端口在计算(meanPathDelay)时所用的传输延时测量选项,值应取自表9中的枚举。除了在PTP行规中说明外,初始化值是实现特定的。表9延时机制枚举延时机制值(十六进制)规范E2E0l端口被配置为使用延时请求响应机制P2P02端口被配置为使用对等延时机制DISABI,EDFE端口未实现延时机制,见注。注:除非适用PTP行规规定时钟仅谐振且不使用任何路径延时机制,否则都不应设为该值。注:9.1允许重新配置。允许自动配置,但超出本标准范围。8.2.4.4.5portDS.IogMinPdelayReqIntervalportDS.109MinPdelayReqInterva[的值应是以2为底minPdelayReqInterval的对数,见7.7.2.5。8.2.4.4.6portDS.versionNumberportDS.versionNumber的值应指出端VL所使用的PTP版本。59 GB/T25931—2010/IEc6T588:20098.3透明时钟的数据集8.3.1概述可选地,透明时钟应维护每个缺省数据集和端口数据集的单个副本。注:不同于普通时钟和边界时钟,透明时钟不为每个域维护单独的数据集。除了谐振外,透明时钟是域无关的。8.3.2transparentCIockDefaultDS数据集成员规范8.3.2.1概述该数据集成员如下:--transparentClockDefauhDS.clockIdenfity;--transparentClockDefaultDS.numberPorts;--transparentClockDefaultDS.delayMechanism;--transparemClockDefaultDS.primaryDomain。8.3.2.2transparentCIockDefaultDS数据集静态成员8.3.2.2.1transparentCIockDefaultDS.clockldentitytransparentClockDefaultDS.clockldentity的值应是本地时钟的clockIdentity属性(见7.6.2.1)。8.3.2.2.2transparentCIockDefaultDS.numberPortstransparentClockDefaultDS.numberPorts的值应为设备PTP端口的个数。8.3.2.3transparentCIockDefaultDS数据集的可组态成员8.3.2.3.1transparentCIockDefaultDS.delayMechanism如果透明时钟是端到端透明时钟,则transparentClockDefaultDS.delayMechanism的值应为E2E,见表9。如果透明时钟是点到点透明时钟,则值应为P2P。8.3.2.3.2transparentCIockDefaultDS.primaryDomaintransparentClockDefaultDS.primaryDomain的值应是主谐振域的domainNumber,见lO.1。初始化值应为0。8.3.3transparentCIockPortDS数据集成员规范8.3.3.1概述该数据集成员如下:——transparentC[ockPortDS.port]dentity;--transparentClockPortDS.109MinPdelayReqInterval}--transparentClockPortDS.faultyFlag;--transparentClockPortDS.peerMeanPathDelay。8.3.3.2portDS数据集静态成员8.3.3.2.1transparentClockPortDS.portldentitytransparentclockPortDs.portldentity的值应是本地端I:l的PortIdentity属性,见7.5.2。8.3.3.3portDS数据集动态成员8.3.3.3.1transparentCIockPortDS.IogMinPdelayReqIntervaltransparentclockPortDs.109MinPdelayReqInterval的值应是以2为底MinPdelayReqInterval的对数,见7.7.2.5。8.3.3.3.2transparentClockPortDS.fau!tyFlag如果端口故障,则transparentClockPortDS.fauhyFlag的值应为TRuE;如果端口运行正常,则值应为FAI.SE。初始化值应为FALSE。8.3.3.3.3transparentCIockPortDS.peerMeanPathDelay如果transparentclockDefaultDS.delayMechanism成员的值是P2P,则transparentclockPortDs.60 GB/T25931—2010/IEC61588:2009peerMeanPathDelay的值应为链路上当前单向传输延时的估计值,即附加到本端口并使用对等延时机制进行计算的(meanPathDelay>,见11.4。如果transparentclockDefaultDs.delayMechanism成员的值是E2E,则值应为0。数据类型应为TimeInterval。初始化值应为0。9PTP普通时钟和边界时钟9.1PTP普通时钟和边界时钟的通用协议要求普通时钟和边界时钟:a)可在多个域(见7.1)中运行。每个域的运行应独立于其他域;b)当9.2中的状态机要求时,应根据12.2同步;c)应通过使用以下选项对路径延时进行校正:1)延时请求响应机制,见11.3;2)对等延时机制,见11.4。只要任意时刻仅有一个机制是活动的,一个端口可同时实现延时请求一响应机制和对等延时机制。选择的方法不属于本标准范围。不禁止自动配置。时钟仅与使用最佳主时钟算法所选的时钟同步。除满足第17章条件外,当接收到的Announce、Sync、Follow_Up或Delay_Resp报文的报文头标志altermateMasterFlag值为TRUE时,普通时钟或边界时钟应丢弃该报文。普通时钟应包含一个PTP端口,该端口遵循9.2的要求。边界时钟应包含多个PTP端口,每个PTP端口都遵循9.2的要求。9.2状态协议9.2.1通用状态要求所有普通时钟和边界时钟都应实现9.2的状态机和状态行为。9.2.2slave-only(只作为从时钟)普通时钟普通时钟可被设计为slave—only时钟或nomslaveonly时钟。实现可以通过管理报文SLAVE—ONI.Y或实现相关方法,可选地提供配置到slave-only模式的能力。slave-only时钟应实现图24所示的状态机。注:slaveonly时钟不能进入MASTER状态。因此,系统应至少包含一个non—slave-only时钟。slave-only时钟使用的状态机不同于nonslaveonly时钟,并且具有不同的clockClass号,见7.6.2.4。9.2.3non-slave-only(不仅仅作为从时钟)时钟边界时钟不应为slave—only时钟。边界时钟以及不被设计为或不被配置为slave—only的普通时钟,应实现图23所示的状态机。9.2.4状态定义除了16.1定义的单播报文条件外,与图23和图24状态机相关联的端口状态的行为应如表10定义。除了DISABLED状态外,端口可使用接收到的PTP报文中的任何信息,只要该用法不违反协议要求。9.2.5状态机本条的状态机应决定具有状态的PTP端口的允许状态转换。4.3规定图23和图24所用的符号。 GB/T25931—2010/IEC61588:2009表10PTPportState定义PTPportState描述当端口处于INITIALIZING状态时,端I:1初始化其数据集、硬件和通信设备。时钟端INITIALIZING口不应向其通信路径放置任何PTP报文。如果边界时钟有一个端口处于INITIAl。IZING状态,则其所有端口都应处于INITIAl。IZING状态协议的故障状态。当端口处于该状态时,除了要求的对另外管理报文响应的管理报文外,端口不应向其通信路径放置任何PTP报文。在边界时钟,故障端口的行为不应影响FAULTY设备的其他端口。如果处于该状态的端口的故障行为,不能限制在故障端口,则所有端口都应处于FAULTY状态端口不应向通信路径放置任何PTP报文。在边界时钟,该端口的行为不允许影响边界D1SABLED时钟任何其他端口的行为。除管理报文外,处于该状态的端口应丢弃所有接收到的PTP报文端口等待announceRecelptTimeout超时,或者等待接收来自主时钟的Announce报文。该状态的目的是允许有序地将时钟增加到一个域。当端口处于该状态时,除Pdelay—I。ISTENlNGReq、PdelayResp、PdelayResp_Follow—Up、信号报文或要求的对另外管理报文响应的管理报文外,端口不应向其通信路径放置任何PTP报文除了处于该状态的端El不能向其通信路径上放置除Pdelay—Req、Pdelay—Resp、PdelayPREMASTERResp_Follow—Up、信号报文或管理报文以外的任何报文外,端口在所有方面的行为应同处于MASTER状态一样MASTER端口作为主时钟端口进行动作除Pdelay_Req、PdelayResp、Pdelay—Resp—Follow—Up、信号报文或要求的对另外管理PASSlVE报文响应的管理报文外,端口不应向其通信路径放置任何报文在域中检测到一个或多个主时钟端口。巳选择了合适的主时钟端口,并且本地端口正UNCALlBRATED准备同步到所选的主时钟端口。这是一个暂态,以便允许初始化同步动作,当选择一个新主时钟端口时的数据集更新,以及其他实现特定行为SI,AVE端口同步到所选的主时钟端口62 GB/T25931—2010/IEC61588:2009图23完整实现的状态机63 GB/T25931—2010/1EC61588:2009SBMCSLAvE图24slave-only实现的状态机在图23和图24中,当一个故障被清除,或先前被禁用的端口启用了,状态机就转换到INITIALIZING状态。注:在后续转换到IASTENING状态之前,不要求实现执行INITIAl。IZE命令、上电或复位之后的所有步骤,但要求达到执行这些步骤的结果。9.2.6引发PTP状态转换的事件9.2.6.1概述引发图23和图24状态机中状态转换的每个事件的规范见9.2.6。9.2.6.2PoWERUPPOWERUP事件应通过打开设备电源实现实例化。也可由实现特定的复位机制实例化,如复位按钮。9.2.6.3INITlALIZEINITIALIZE事件应由INITIAI.IZE管理报文的接收实例化,或如果该报文1nitiallzationKey字段要求,由其等价方法实例化。9.2.6.4DESIGNATED—ENABLEDDESIGNATED_ENABI。ED事件应由ENABLE—PORT管理报文的接收实例化。9.2.6.5DESIGNATED—DISABLEDDESIGNATEl3_DISABI。ED事件应由DISABI。E—PORT管理报文的接收实例化。64 GB/T25931—2010/mc61588:20099.2.6.6FAULT—CLEAREDFAUI⋯TCIEARED事件应由故障条件或阻止端口正确操作条件的清除实例化。注:所有检测到的故障条件的清除可源于管理报文的动作或内部规程。9.2.6.7FAULll_DETECTEDFAULTDETECTED事件应由阻止端口正确操作的内部条件的发生实例化。9.2.6.8STATE_DECISION_EVENTSTATEDECISION—EVENT机制通过使用接收到的Announce报文中的数据判断哪个是最佳主时钟,以及本地时钟端口是否需改变状态。每个时钟应实现一个生成STATE—DECISION—EVENT的机制,并且该事件的发生应实现图25所示逻辑。图25中所示的最佳主时钟算法为本标准规定的缺省最佳主时钟算法。如果规定可选最佳主时钟算法(见9.3.1),则图中方框标记的最佳主时钟算法的部分可不同。(发生s—eDws-“mwt)一;主:『应用状志判定算法为所有螬口更新敷据集在所有蓑襞铲求的卜_—弋竺)图25STATE_DECISION_EVENT逻辑STATE—DEClSION—EVENT应:——在一个时钟的所有端口逻辑地同时发生;——每Announce报文传输间隔内至少发生一次;——当任意端口处于INITIAI,IZING状态时不得发生。对于实现缺省最佳主时钟算法(见9.3.1)的节点,在STATE—DECISION—EVENT逻辑的第一个动作之前,或作为STATE—DECISION—EVENT逻辑的第一个动作,每个不处于DISABLED或FAULTY状态的端口N,应计算E№。的更新值,以反映自上一次STATE—DECISION—EVENT以后对Announce报文的接收。所有端口都计算E一。集之后,时钟应计算E一。对所有节点,时钟应按给定顺序完成以下任务:a)采用最佳主时钟算法;b)更新相应的数据集;c)在状态机中实例化推荐状态事件;d)在所有端口执行要求的状态改变。这些任务应原子性地执行,见3.1.2。该输入信息应包含E一。值的集合。这些任务的执行见9.3定义。65 GB/T25931—2010/IEC61588:20099.2.6.9推荐状态推荐状态事件是由STATE—DECISION—EVENT引发的执行最佳主时钟算法的结果。9.2.6.10QUALIFICATIoN—_TIMEOUTEXPIRES(qualificationTimeoutInterval>的超时定义QUALIFICATION—TIMEOUT—EXPIRES事件。该超时机制决定了时钟处于PRE—MASTER状态的时间。当端口进入PRE—MASTER状态时,启动(qualificationTimeoutInterval>。应在按如下方法计算出的时间间隔后发生超时:qualificationTimeoutIntervaI应为announceInterva[(见7.7.2.2)的N倍,单位为秒(s),当:a)如果根据图26的判定点M1或M2,使得推荐状态一MASTER事件,则N应为0;b)如果根据图26的判定点M3,使得推荐状态一MASTER事件,则N应为currentDS.stepsRemoved字段值加1。9.2.6.”ANNOUNCE—RECEIPTJIMEOUT_EXPIRES每个协议机应支持定义announceReceiptTimeoutInterval的超时机制,其值为portDS.announceReceiptTimeout乘以announceInterval的值,见7.7.3.1。该超时值加上一个在(0,1)期间均匀分布的随机数乘以announceInterval的值,该和超时将引发ANNOUNCE—RECEIPT—T1MEOUT—EXPIRES事件。当任何以下事件发生时,应启动或重新启动端口的本超时机制:a)对处于UNCALIBRATED或SLAVE状态的端口,当从父时钟接收Announce报文时。父时钟由parentDS.parentPortIdentity指示。b)除非第9章另有规定,当前portDS.announceReceiptTimeoutInterval超时时刻。c)当进入I。lSTENING、UNCALIBRATED、SI。AVE或PASSIVE状态时。d)对处于PASSIVE状态的端口,当从由于传输Announce报文导致端口进入PASslVE状态的时钟接收Announce报文时。该时钟的辨别通过比较各自报文sourceP。nIdentlty字段实现。当进入INITIAl。121NG、PRE—MASTER、FAuLTY、D1SABI。ED或MASTER状态时,应停止或不重新启动本超时机制。除图23和图24的状态改变外,当ANNOUNCE—RECEIPT_TIMEOUT—EXPIRES事件发生时,处于LISTENING、PASSIVE、UNCALIBRATED或SLAVE状态的端口,应在进入MASTER状态前更新数据集,操作如下:——一对于普通时钟,按判据M1规定将端口数据集更新为MASTER状态配置(见9.3.5);——对于没有其他端口处于SI。AVE状态的边界时钟,按判据M1规定将端口数据集更新为MASTER状态配置(见9.3.5);——对于有其他端口处于S1,AVE状态的边界时钟,按判据M3规定更新端口数据集为MASTER状态配置(见9.3.5)。。9.2.6.12SYNCHRONIZATIoN—FAULTsYNcHRONIzATION—FAULT事件的实例化是实现特定的。只要时钟处于SLAVE状态,并且实现检测到要求重新执行发生在UNCALIBRATED状态下的功能的实现环境(重新执行保证正确的同步),该事件应被实例化。9.2.6.13MASTER_I:LOCK_SELECTEDMAsTER—CI,OCK—SELECTED事件的实例化是实现特定的。只要处于UNCAI。lBRATED状态的时钟,已满足保证在SI。AVE状态同步的所有实现和协议必备要求,该事件应被实例化。9.2.7边界时钟端口使用PTP事件对于边界时钟,引发图23和图24状态机状态转换的事件(见9.2.6)应被用于设备端口的状态机,如表11所示。R6 GB/T25931—2010/IEC61588:2009表11边界时钟事件的可用性事件名称端口可用性POWERUP所有端口NlTlALIZE所有端口FAULT—DETECTED所有受故障影响的端口FAUI.T—CLEARED所有受故障影响的端口STATlDECISION—EVENT所有端口推荐状态,见注所有端口ANNOUNCERECEIPT二TIMEOuTEXPIRES,或发出超时机制到时信号的端口QUAI,IFICATION—TIME()UTEXPIRESDESIGNATEDENABLED,或DESIGNATED_DISABLED初始化管理报文规定的端口MASTERCLOCK—SELECTED发出事件信号的端口SYNCHRONlZATl0N—。FAUI.T发出事件信号的端口注:推荐状态是由STATEDECISION—EVENT引发的最佳主时钟算法执行结果的状态。9.3最佳主时钟算法9.3.1最佳主时钟算法的选择PTP允许使用2种方式的最佳主时钟算法:——缺省地,9.3.2~9.3.4规定的机制;——如果PTP行规中有规定,备选最佳主时钟算法。任何备选最佳主时钟算法应满足以下要求:a)算法的输出应提供执行9.2.5、9.2.6.8和9.2.6.9中PTP状态机和状态判定事件所要求的推荐状态。推荐状态应满足9.2.4的要求。可选地,备选算法可以是动态算法,或是在运行节点的端口上简单配置推荐状态值的静态算法。b)算法的输出应提供用于更新数据集(见9.3.5)的状态判定代码,以及根据这些代码进行更新所要求的任意数据。这些判定代码应如下:1)M1:端口处于MASTER状态,因为端口在clockClass1~127节点上,并且是系统最高级时钟的端口;2)M2:端口处于MASTER状态,因为端口在clockClass128或更高节点上,并且是系统最高级时钟的端口;3)M3:端口处于MASTER状态,但并不是系统最高级时钟的端口;4)S1:端口处于SLAVE状态}5)P1:端口处于PASSIVE状态,因为端口在c[ockClass1~127节点上,并且不在系统最高级时钟上,或者处于PASSIVE以中断一个时间环;6)P2:端口处于PASSIVE状态,因为端口在clockClass128或更高节点上,并且处于PASSIVE以中断一个时间环。域中每个普通时钟和边界时钟的所有端口都本地运行BMC算法。因为连续运行,该算法不断重新适应网络或时钟的改变。9.3.2BMC算法9.3.2.1概述和术语定义9.3.2规定了本地时钟用来判断在所有时钟(包括自身)中哪个是“最佳”时钟的方法,以决定其所有端口的下一状态,见表10。在域中每个时钟独立执行算法。换言之,时钟并不协商哪个应为主时钟67 GB/T25931—2010/IEc61588:2009哪个应为从时钟——相反,每个时钟仅计算自己端口的状态。该算法避免了两个主时钟、没有主时钟,或主时钟来回替换的配置。最佳主时钟算法BMC包括两部分:a)数据集比较算法,用于判定两个时钟端口中哪个是较好的,见9.3.4;b)用于计算涉及端口的推荐状态的算法,见9.3.3。本判据是基于给定时钟端口接收到的Announce报文中包含的信息,以及该给定时钟的defauhDS数据集的值。9.3.2.2通用BMC规范通过defauhDS数据集D。和其他数据集描述特性,普通时钟c。或具有“N”个端口的边界时钟c。上的BMC算法应遵循以下:a)对于co的每个端El⋯t,应比较合格的Announce报文(见9.3.2.5)。这些报文是从连接到端口“r”所在通信路径的其他时钟的端口接收到的。b)对于co的每个端口“r”,报文中的最佳报文E一:,应通过使用数据集比较算法判定。c)对于时钟c。的N个端口的集合,报文中的最佳报文E一,应通过使用数据集比较算法从N个E。。。报文中判定。d)对于时钟c。N个端口的每个端口,报文E“。、E一。和defauhDS数据集Do应同状态判定算法一起使用,以决定适用每个端口状态机(见9.2.5)的BMC事件。e)除了主时钟簇选项的条款外(17.3),当根据9.3.2执行最佳主时钟算法时,端口应丢弃所有ahernateMasterFlag为TRUE的Announce报文。这些报文不应进入用于最佳主时钟算法的foreignMasterDS。备选主时钟选项(见17.4)规定了该标志为TRUE的Announce报文的其他用法。9.3.2.3E。的计算每个端El可判定E一:而与其他端口活动无关。E一的判定、状态判定算法的使用,以及这些判定结果应用所要求的任何状态改变的实例化,都是原子性的,见3.1.2。当计算E一。时,端口“r”应:a)仅考虑端口“r”上接收到的合格的Announce报文(见9.3.2.5)。b)包括至少两个合格的来自外部主时钟的Announce报文(如果这样的报文存在)。在这种情况下,“r”应从其实现特定的foreignMasterDS数据集(见9.3.2.4)中,删除所有被考虑但未被选为Em,。的记录。c)如果端口“r”处于SLAVE状态,包括先前在端口“r”上的E。。计算结果。然而,如果端口⋯r’从相同发送端口接收到一个更新的合格Announce报文,则应考虑该报文中的值。如果在端口“r”上先前En。。计算期间,为所选时钟发生了一个ANNOuNcE—RECEIPT—TIMEOUT—EXPIRES事件,则不应包括先前在端口“r”上的E“。。计算值。注:应包括来自许多外部主时钟的Announce报文,外部主时钟的个数与端VI资源允许的一样多。9.3.2.4,foreignMasterDS数据集规范9.3.2.4.1概述每个端口应维护一个实现特定的foreignMasterDS数据集,以便对Announce报文进行合格判定。数据集中的每个登人项包含两个成员:--foreignMasterDS.foreignMasterPortIdentitv;——foreignMasterDS.foreignMasterAnnounceMessages。9.3.2.4.2foreignMasterDS.foreignMasterPortIdentityforeignMasterDS.foreignMasterPortIdentity的值应是从外部主时钟接收到的Announce报文中sourcePortIdentity字段的值。68 GB/T25931—2010/me61588:20099.3.2.4.3foreignMasterDS.foreignMasterAnnounceMessagesforeignMasterDS.IoreignMasterAnnounceMessages的值应是从foreignMasterDS.foreignMaster—Portldentity成员标识的外部主时钟接收到的Announce报文的个数,这些Announce报文是在FOREIGN—MASTER—TIME—WINDOW的时间窗内接收到的。9.3.2.4.4FOREIGNmASTERjIME』INDOW瓤FOREIGNmASTERjHRESHOLD这两个属性值决定了在执行最佳主时钟算法时,考虑是否从先前静默的外部主时钟接受Announce报文的准则。这些属性值应为:——FOREIGN—MASTER—TIME—WINDOW:4倍的announceInterval;——FOREIGN—MASTER—THRESHOI。D:在FOREIGN—MASTER—TIME—WINDOW内接收到的2个Announce报文。9.3.2.4.5foreignMasterDS数据集大小实现特定的foreignMasterDS数据集应具有最小5个外部主时钟记录的容量。9.3.2.5Announce报文的合格判定端口“r”接收到的Announce报文S,应按如下方法判定其是否合格,以用于BMC算法:a)如果S是端口“r”发出的,或从包含端口“r”的时钟的其他任何端口发出(见9.5.2),则S不应是合格的;b)如果S不是端口“r”从给定时钟接收到的最新Announce报文,则S应是不合格的;c)如果S的发送方是外部主时钟F,并且在最新的FOREIGN—MASTER—TIME—WINDOW间隔内,从F接收了少于FOREIGN—MASTER—THRESHOLD个不完全相同的Announce报文,则S应是不合格的;注:本时间窗Vl和阈值的目的是为了只对稳定的潜在主时钟进行合格判定,并防止最佳主时钟的伪转移。d)如果s的stepsRemoved字段为255或更大,则S应是不合格的;注:本条确保杜绝欺诈帧。这是对出于此目的的PATH—TRACE选项的必要后备,见16.2。如果网络规模大到可能存在涉及255个边界时钟的回路,则该基于stepsRemoved的机制可能导致PTP失效。这在实际应用中极不可能发生。e)否则,S是合格的。9.3.3状态判定算法图26定义了在最佳主时钟算法中使用的状态判定算法。当使用该算法获得一个判定后,本地时钟的数据集应更新,见9.3.5。D。表示时钟C。的特性,见C。数据集。D。同E。或Em,。的比较应使用数据集比较算法。对于图26中的判定块“根据拓扑E。比E。。好”,E一和E一,的比较应使用数据集比较算法。应根据D。的defauhDS.clockQuality.clockClass成员的值,判断Do是否为clockClass1~127。图23和图24的协议机状态机中所用的推荐状态值,应为图26给定的推荐状态值。9.3.4数据集比较算法最佳主时钟算法通过比较代表各自时钟的数据集,实现一个时钟同另一个时钟的比较。数据集比较算法定义如图27和图28所示。数据集在这些图中被表示为集A和集B。表12给出数据集值的来源。如果在比较耽、E一或E“。。的任意两个数据集中,一个数据集是空集,则非空集被视为较好集。D。从来不是空集,但E-。、En。或两个都可能是空集。注:该比较随后的通用过程如下:a)寻找哪个时钟将自己的时间溯源到最佳最高级时钟。找到这个时钟而不是较好时钟,对于算法的稳定性是很重要的。7b)如果特性都相同,则使用决定性判断技术。 GB/T25931—2010/IEC6158812009否是图26状态判定算法表12数据集比较算法的信息源当按照图27和图28如果数据集是Ee州或E惦。,使用相关联的如果数据集是Dn,使用本地时钟考虑本特性时Announce报文的这些字段“fauhDS数据集的这些字段GMPriority1grandmasterPriorityldefaultDS.Priority1GMidentitygrandmasterIdentitydefaultDS.clockIdentityGMclassgrandmasterClockQuality.clockClassdefaultDS.clockQuality.dockClassdefaultDSdockQualityGMaccuracygrandmasterClockQualityclockAccuracyGMoffsetScaledI。oggrandmasterClockQualitydefauhDSclockQuality.VarianceoffsetScaledLogVarianceGMPriority2grandmasterPriority2defaultDS.Priority2经过几步(StepsRe—stepsRemoved值为0moved)发送方的IdentitysourcePortIdentltydefauhDS.clockldentity70≥ 表12(续)GB/T25931—2010/IEC6158812009当按照图27和图28如果数据集是Eh,或Em吲,使用相关联的如果数据集是D。,使用本地时钟考虑本特性时Announce报文的这些字段defauhDS数据集的这些字段parentDS.portldentity(接收报文端口的接收方的IdentitydefaultDS.clockIdentityportDS数据集的)parentDSportIdentity.portNumber(接收接收方的端口号值为0报文端口的portDS数据集的)否是图27数据集比较算法,第1部分71琴 GB/T25931—2010/IEC61588:2009图28数据集比较算法,第2部分注:图28所示返回的错误不用于图26的状态判定算法。这些返回值不属于9.3.25,但有助于诊断或错误检测。当违反9.3.2.5时,错误情况就产生。Error-1是指在相同端口发送和接收了其中一个报文。Error2是指有重复报文,或它们是来自相同最高级时钟的前后两个报文。9.3.5数据集的更新currentDS、parentDS、portDS和timePropertiesDs数据集的更新,应按表13~表16定义的状态判定代码的更新。判定代码由图26中缺省最佳主时钟算法的“状态判定代码”,以及9.3.1PTP行规定义的替代算法所表示。portDS数据集的portDS.portState成员应随着图23和图24所示的、与每个端口相关联的协议状态机的改变而更新,状态机的改变根据9.2.6.8。表13~表16未包括的数据集字段不更新。表13状态判定代码M1和M2的更新需更新的字段除非另有说明,来自时钟defaultDS数据集的指定字段currentDS数据集currentDS.stepsRemoved设为0currentDS.o/fsetFromMaster设为0currentDS.meanPathDeIay设为0parentDS数据集parentDSclockldentity成员设为defauhDS.clockldentity字段的值,parentDSparentPortIdentltyparentDS.parentPortIdentl‘yportNumber成员设为0 表13(续)GB/T25931—2010/IEC61588:2009需更新的字段除非另有说明,来自时钟defaultDS数据集的指定字段parentDSgrandmasterIdentitydefaultDS.elockldentityparentDS.grandmasterCIockQualitydefaultDSelockQualityparentDS.grandmasterPriority1defaultDS.Priority1parentDSgrandmasterPriority2defaultDS.Priority2timePropertiesDS数据集timePropertiesDS.currentUtcOifset遵循94的规则timePropertiesDS.currentUtcOffsetVelid遵循9.4的规则timePropertiesDSleap59遵循9.4的规则timePropertiesDS.1eap61遵循9.4的规则timePropertiesDS.timeTraceable遵循94的规则timePropertiesDS.frequencyTraceabIe遵循9.4的规则timePropertiesDS.ptpTimeseMe遵循9.4的规则timePropertiesDS.timeSource遵循9.4的规则portDS数据集状态是将图26中的推荐状态应用到相应的图23或图24状态机的portDS.portState结果表14状态判定代码M3的更新更新该字段来自指定源portDs数据集p。rtDS.portstate状态是将图26中的推荐状态应用到相应的图23或图24状态机的结果表15状态判定代码P1和P2的更新更新该字段来自指定源portDS数据集『p。rtDS.p。rtState状态是将图26中的推荐状态应用到相应的图23或图24状态机的结果表16状态判定代码s1的更新更新该字段来自指定源currentDS数据集currentDS.stepsRemoved1+Eh的stepsRemoved值parentDS数据集parentDS.parentPortIdentityEbcH的sourcePortldentI‘yparentDS.grandmasterldentityEh“的grandmasterIdentityparentDS.grandmasterClockQualityEh的grandmasterClockQualityparentDS.grandmasterPriority1E‰的grandmasterPriority1parentDS.grandmasterPriority2E¨的grandmasterPriority2tirnePropertiesDS数据集 GB/T25931—2010/IEC61588:2009表16(续)更新该字段来自指定源timePropertiesDScurrentUtcOffsetE‰的currentUtcOffset字段timePropertiesDScurrentUtc()ffsetValidE‰的flagField的currentUtcOffsetValid位的逻辑值timePropertiesDSleap59E‰、的flagField的leap59位的逻辑值timePropertiesDS.1eap61Eb吲的flagField的leap61位的逻辑值timePropertiesDStimeTraceableE¨的flagField的timeTraceable位的逻辑值timePropertiesDSfrequencyTraceableE油的flagField的frequencyTraceable位的逻辑值timePropertiesDS.ptpTimescaleEh的flagField的ptpTimescale位的逻辑值timePropertiesDS.timeSourceE‰的timeSource字段的值portDS数据集portDS.portState状态是将图26中的推荐状态应用到相应的图23或图24状态机的结果注:Eb。。。是一个Anno",anee报文。9.4最高级时钟最高级时钟决定域的时标以及相关时标属性。注:作为图26中状态判定算法MI和M2的结果而处于MASTER状态的时钟是最高级时钟。如果时标是PTP,并且时钟是class6、7或52,则timePropertiesDS数据集成员应按如下设置:——timePropertiesDS.1eap59和timePropertiesDS.1eap61:如果已知,设为从主参考获得的值;否则,设为FAI,SE。--timePropertiesDS.currentUtcOffset:当节点被设计时,如果已知,设为从主参考获得的值;否则,设为当前闰秒数,见7.2.3。——timePropertiesDS.currentUtcOffsetValid:如果已知currentUtcOffset的值是正确的,设为TRuE;否则,设为FALSE。--timePropertiesDS.ptpTimescale:设为TRUE。--timePropertiesDS.timeTraceable:如果时间可溯源到主参考,设为TRUE;否则,设为FALSE。--timePropertiesDS.frequencyTraceable:如果频率可溯源到主参考,设为TRUE;否则,设为FALSE。——timePropertiesDS.timeSource:如果已知,设为表7中的适当值;否则,设为INTERNAL—OS—CILLATOR。如果时标是ARB,则对于除6、7或52之外的所有clockClass,除非另有说明,timePropertiesDS数据集成员应被设为:——timePropertiesDS.1eap59和timePropertiesDS.1eap61:设为FAI。SE;——timePropertiesDS.currentUtcOffset:当节点被设计时,设为当前闰秒数,见7.2.3;--timePropertiesDS.currentUtcOffsetValid:如果已知currentUtcoffset是正确的,设为TRUE;否则,设为FAI。SE;--timePropertiesDS.ptpTimescale:设为FALSE;--timePropertiesDS.timeTraceable;如果时间可溯源到主参考,设为TRUE;否则,设为FALSE:——timePropertiesDS.frequencyTraceable:如果频率可溯源到主参考,设为TRUE;否则,设为FALSE:74 GB/T25931—2010/IEC6158812009——timePropertiesDS.timeSource:如果已知,设为表7中的适当值;否则,设为INTERNAL—OSCII.LATOR。如果timePropertiesDS.1eap59或timePropertiesDs.1eap61是TRUE,则在当日结束的午夜(UTC)之前的时间段里都应被设为TRUE,以及在以下时间段之后被设为TRUE:——当最高级时钟判定该值为TRUE时;——当日午夜(UTC)之前的12个小时。当第一个具有timePropertiesDS.currentUtcOffset更新值的Announce报文出现时,这些变量值应被设为FAI。SE。timePropertiesDS.currentUtcO{fset、timePropertiesDS.1eap59和timePropertiesDS.1eap61的更新应在午夜(UTC)的±2个announceInterval时间内完成。注1:闰秒数和currentUtcOffset的改变在午夜(UTC)按照国际标准进行。但在实际实现中,由于代码执行时间的差异,currentUtcOt"{set的实际更新以及timePropertiesDSleap59和timePropertiesDSleap61的FAI.SE值设置,可在午夜(UTC)稍微提前或错后的时间进行。士2个announceInterval更新的要求可在主时钟很容易地实现,以确保即使在非常大的拓扑结构中,信息在下一个UTC日的中午之前被传送给所有从时钟。这避免混淆UTC所指跳变在哪个午夜完成。注2:使用经认可的标准时间源的最高级时钟应分发PTP时标。9.5报文处理语义9.5.1普通时钟和边界时钟的报文传输行为9.5规定了在普通时钟或边界时钟的每个PTP端口,可能发生的以下事件的行为:——报文的接收;——报文的发送。由这些事件产生的行为可取决于普通时钟或边界时钟PTP端1:3的当前状态,见9.2.5。除管理报文外,所有多播PTP报文应在边界时钟或普通时钟终止。同时是网桥或路由器的边界时钟,根据网络转发规则转发所有单播PTP报文。任何其他行为不在本标准范围内。除9.5规定外,协议的执行不应导致通信路径上的任何通信。由于任何事件或合格事件序列的发生,而导致本地时钟的任何状态或数据的改变,或数据集的更新都是原子性的,见3.1.2。合格事件序列被定义为在相同announceInterval内接收到多个Announce报文(见7.7.2.2)。状态或数据改变,或一个事件发生而导致发送一个PTP报文的请求,应按先进先出顺序(FIFO)由报文类处理。应为事件和通用报文维护一个逻辑独立的FIFO排序。一旦报文请求进入队列,无论发生什么后续事件,都应发送该报文。只有当PTP报文头(见13.3.2.5)中的domainNumber字段与ddaultDS.domainNumber一致时,PTP报文才被协议接受并进行处理。9.5.2时钟对任何自己发出报文的接收9.5.2.1概述精确时间协议不使用时钟自己发出并接收到的报文,并且实现应防止协议处理这样的报文。9.5.2.2和9.5.2.3规定了这样的报文被接收时应如何处理。9.5.2.2普通时钟和边界时钟的任何单个端口在一个端口上发出的又被同一端口接收到的报文应被忽略。由于实现特定的诊断目的可能存在特例,这超出本标准范围。这种情况的识别可通过将接收报文的sourcePortIdentity字段成员同进入端口portDS.portldentity的相应成员进行比较来实现。可能性和解释见表17。注:由于通信路径的正常或非正常特性可发生本情况。75 GB/T25931—2010/IEC61588:20099.5.2.3边界时钟的附加限制边界时钟上的端口“N”可能直接接收相同边界时钟的其他端口“M”发出的Announce报文。如果端口N和M在相同的通信路径通信,则可发生该情况。这是最佳主时钟算法不能检测的非正常情况。当该情况在一组端口被检测出时,除具有最小portNumber端口(假定N)外,边界时钟应将涉及的其他所有端口状态都置为PASSIVE状态,直到协议正常运行不再判定端口N处于MASTER状态为止。这种情况的识别可通过将接收报文的sourcePortIdentity字段成员同进入端I:1portDS.portldentity的相应成员进行比较来实现。可能性和解释见表17。表17源标识符比较假设报文m到达时钟e的端口n,n的portDS.portldentity字段具有clockldentity为a和portNumber为n的成员:如果nl的sourcePortIdentity包含:解释为:clockldentitya,portNumbernm是由时钟c的端口n发出的clockIdentityf≠a.portNumbernrfl是由其他时钟(不是时钟c)的端口发出的clockldentitya,portNumberq≠nm是由时钟c发出的,但不是从n端口9.5.3来自其他时钟的Announce报文的接收处理Announce报文的逻辑见图29。图中表示的状态是指接收Announce报文的端口的当前状态。如果端口在INITIALIZING或DISABLED状态接收Announce报文,则报文应被丢弃。如果端口在FAUI,TY状态接收Announce报文,则除出于实现特定目的以满足9.2要求外,报文应被丢弃。如果接收到的Announce报文sourcePortIdentity字段的成员与接收时钟的数据集的parentDS.parentPortIdentity相应成员相同,则报文来自当前父时钟,即该时钟同步到的主时钟。当来自端12F的Announce报文被端口N在与N相关的通信路径上接收时,如果任何以下条件为TRUE,则端口F被指定为外部主时钟:——端口N不处于SI.AVE状态;——端口N处于SLAVE状态,并且接收报文的sourcePortIdentity字段的成员不完全与接收时钟的数据集的parentDS.parentPortIdentity相应成员相同。如果从外部主时钟接收Announce报文,则进入端口的实现特定的foreignMasterDS数据集(见9.3.2.4)应按如下更新:a)如果接收到的Announce报文sourcePortIdentity字段的成员与进入端121数据集的foreign—MasterDS.foreignMasterPortIdentity的相应成员相同,则该记录的foreignMasterAn—nounceMessages字段应增加。b)如果接收到的Announce报文sourcePortIdentity字段的成员与进入端口数据集的foreignMasterDS.{oreignMasterPortIdentity的相应成员不相同,则在数据集中应创建一个新记录,该记录foreignMasterDS.foreignMasterPortIdentity字段被设为接收到的Announce报文的sourcePortIdentity字段值,并且其foreignMasterDS.foreignMasterAnnounceMessages字段值应设为0。对[orcignMasterDS数据集容量的实现特定的局限性,限制了这样记录的个数。如果foreignMasterDS满,则应丢弃Announce报文。如果从当前父时钟接收一个Announce报文,则进入端口的数据集应根据表16进行更新,除非每个字段的源都应为接收到的Announce报文而不是E。。注:在foreignMasterDS数据集(见93.2.4.5)中可保存的最大记录个数不影响协议运行的正确性,但是可能影响选择主时钟和从时钟的收敛速度。更高容量允许节点在每个announceInterva[内处理并排除考虑更多外部主时钟,而不必等到数据集中存储来自任何剩余外部主时钟的后续报文的空间可用。 否是一.厂i]\、————_/GB/T25931—2010/IEC61588:2009是害害图29Announce报文接收逻辑9.5.4来自其他时钟的Sync报文的接收处理Sync报文的逻辑见图30。图中表示的状态是指接收Sync报文的端口的当前状态。如果端口在INITIALIZING或DISABLED状态接收Sync报文,则报文应被丢弃。如果端口在FAULTY状态接收Sync报文,则除出于实现特定目的以满足9.2要求外,报文应被丢弃。应为Sync报文的接收生成满足7.3.4要求的(syncEventIngressTimestamp)。接收到的Sync报文应在接收后尽快处理。如果接收到的Sync报文sourcePortIdentity字段的成员与接收时钟数据集的parentDS.parent—PortIdentity相应成员相同,则报文来自当前主时钟。当Sync报文被接收并满足以下所有条件时:一接收Sync报文的端VI处于SLAVE或UNCALIBRATED状态;接收到的Sync报文flagFieid的twoStepFlag比特为FALSE(表示将不接收Follow—up报文);sync报文来自当前主时钟;则:——应根据11.6.2调整Sync报文correctionField用于校正不对称性;应基于接收到的Sync报文内容和(syncEventIngressTimestamp),根据12.2将本地时钟同步;当Sync报文被接收并满足以下所有条件时:——接收Sync报文的端口处于SLAVE或UNCAI。IBRATED状态;77零 GB/T25931—2010/IEC61588:2009——接收到的Sync报文flagField的twoStepFlag位为TRUE(表示将接收Follow—Up报文)——sync报文来自当前主时钟;则:——应根据11.6.2调整Sync报文correctionField用于校正不对称性。否是是—㈢图30Sync报文接收逻辑9.5.5来自其他时钟的Follow_Up报文的接收处理Follow。Up报文的逻辑见图31。图中表示的状态是指接收Follow—Up报文的端口的当前状态。如果端口在INITIALIzING或DISABLED状态接收Follow—Up报文,则报文应被丢弃。如果端口在FAULTY状态接收Follow—Up报文,则除出于实现特定目的以满足9.2要求外,报文应被丢弃。如果接收到的Follow—Up报文sourcePortIdentity宇段的成员与先前Sync报文的s。urcePortIdentity字段的相应成员相同,并且接收到的Follow—Up报文的sequenceId字段与相同先前的Sync报文的sequenceId字段相匹配,则该Follow—Up报文和该Sync报文是相关联的。如果相关Sync报文的sourcePortIdentity字段的成员与接收时钟数据集的parentDS.parentPortIdentity成员的相应成员相同,则报文是从当前主时钟发出的。Follow—Up报文应在接收后尽快处理。当相关Sync报文被接收并满足以下所有条件时:——接收Follow—Up报文的端口处于SLAVE或UNCALIBRATED状态;——sync报文来自当前主时钟;78④三一令令◇ GB/T25931—2010/IEC6158812009——F。1low—Up报文与该Sync报文相关联;则应根据12.2,并基于接收到的Follow—Up报文、相关Sync报文和相关Sync报文的(syncEventIngressTimestamp),将本地时钟同步。否是是Q图31Follow_Up报文接收逻辑9.5.6来自其他时钟的Delay—且eq报文的接收处理Delay—Req报文的逻辑见图32。图中表示的状态是指接收Delay—Req报文的端口的当前状态。如果端口在INITIALIZING或DISABLED状态接收Delay—Req报文,则报文应被丢弃。如果端口在FAUI,TY状态接收DelayReq报文,则除出于实现特定目的以满足9.2要求外,报文应被丢弃。除非本标准另有规定,如果接收Delay_Req报文的端口不处于MASTER状态,则报文应被丢弃。当接收DelayReq报文时,应生成满足7.3.4要求的(delayReqEventIngressTimestamp)。如果接收Delay—Req报文的端口处于MASTER状态,该端口应传输符合11.3和9.5.12条件的Delay—Resp报文。Delay_Req报文应在接收后尽快处理。害—........L GB/T25931--2010/IEC61588:2009图32Delay—Req报文接收逻辑9.5.7来自其他时钟的Delay_Resp报文的接收处理Delay—Resp报文的逻辑见图33。图中表示的状态是指接收Delay—Resp报文的端口的当前状态。如果端口在INITIAI。IZING或DISABLED状态接收Delay_Resp报文,则报文应被丢弃。如果端口在FAULTY状态接收Delay_Resp报文,则除出于实现特定目的以满足9.2要求外,报文应被丢弃。如果接收到的Delay_Resp报文的requesti“gsourcePortIdentity字段的成员与该接收时钟先前发送的Delay—Req报文的soureePortldev_tity字段的相应成员相同,并且接收到的Delay—Resp报文的re—questingsequenceId字段与相同先前的Delay_Req报文的sequenceld字段相匹配,则该Delay—Resp报文与该Delay_Req报文是相关联的。如果接收到的Delay—Resp报文sourceP。rtIdentity字段的成员与接收时钟数据集的parentDS.parentPortIdentity成员的相应成员相同,则Delay_Resp报文是从当前主时钟发出的。Delay_Resp报文应在接收后尽快处理。当端口发送相关联的Delay_Req报文之后接收Delay_Resp报文,并满足以下所有条件:——接收Delay—Resp报文的端口处于sIAVE或UNCALIBRATED状态;——Delay_Resp来自当前主时钟;、——Delay_Resp报文与发送的Delay_Req报文相关联,则接收时钟应;a)基于接收到的Delay_Resp报文和相关DelayReq报文的内容,执行11.3要求的延时请求响应机制动作;b)将数据集ponDS.109MinI)ela【yReqInterval成员的值更新为Delay_Resp报文的logMessageInterval成员的值。80 否是—㈢GB/T25931m2010/IEC61588:2009是l。)执行延时请求q目应机制6)更新pon。81。∥inDelayReqIntcrval图33Delay—Resp报文接收逻辑9.5.8Announce报文的发送除非本标准另有规定,除本条要求外,端口不应发送Announce报文。处于MASTER状态的端口应周期性发送Announce报文。Announce报文应通过多播(见7.3.1)发送,以2为底报文传输间隔(单位为秒(s))的平均值的对数,等于发送时钟数据集portDS.IogAnnounceInterval的值。一个节点应以90%置信度,在由portDS.109AnnounceInterval计算出的时间间隔的±30%内发出报文。根据第16章,可选地,Announce报文可通过单播传输,在协商好的传输间隔发送。注:用于为每个单播地址保存该数据的节点容量,可能限制协商的单播合约个数(按照第16章)。在一些环境中,多播传输可能是不可行的。只要保持协议的运行,允许使用单播传输,见7.3.1。9.5.9Sync报文的发送9.5.9.1通用规范除非本标准另有说明,除9.5.9.2~9.5.9.4要求外,端口不应发送Sync报文。9.5.9.2通用要求处于MASTER状态的端口应周期性发送Sync报文。Sync报文应通过多播(见7.3.1)发送,以28] GB/T25931D2010/IEC61588:2009为底的报文传输间隔(单位为秒)平均值的对数。等于发送时钟数据集portDS.109syncInterval的值。一个节点应在由portDS.109syncInterval计算出的时间间隔的±30%内发出报文,置信度为90%。根据第16章,可选地,Sync报文可通过单播传输,在协商好的传输间隔发送。注:用于为每个单播地址保存该数据的节点容量,可能限制协商的单播合约个数(按照第16章)。在一些环境中,多播传输可能是不可行的。只要保持协议的运行,允许使用单播传输,见7.3.1。发送的Sync报文字段应符合第13章要求。当发送Sync报文时,应生成满足7.3.4要求的(syncEventEgressTimestamp)。9.5.9.3单步时钟Sync报文的originTimestamp字段应是。Sync报文correctionField和originTimestamp字段的和,应为包括任何小数ns部分的(syncEventEgressTimestamp}的值。9.5.9.4双步时钟Sync报文originTimestamp字段应为0,或误差在±1S内的(syncEventEgressTimestamp)的估计值。Sync报文的correctionField应设为0。双步时钟应既发送Sync报文,又发送Follow—Up报文。端口应将Sync报文的sequenceld值作为Follow—Up报文的sequenceId字段的输入。获得相关联Follow—Up报文的preciseOriginTimestamp和correctionField字段值的机制应被启动。9.5.10Foliow—uP报文的发送除非本标准另有说明,仅当9.5.9.4要求时,端口才发出Follow—Up报文。要求发送Follow—Up报文的Sync报文是相关联的Sync报文。相关联Sync报文发送后应尽快发送Follow—Up报文,并且应在向相同目的地址发送后续Sync报文之前完成发送。Follow—Up报文sequeneceld字段应为相关联Sync报文sequeneceld字段的值。Follow_Up报文的preciseOriginTimestamp字段应为相关联Sync报文的。在发送Delay—Resp报文之前,按顺序端VI应:a)为[ogMinDelayReqInterval字段计算更新值,见7.7.2.4;b)使用该计算值更新发送Delay_Resp报文的端El的数据集portDS.109MinDelayReqInterval成员的值,见8.2.5.3.2;c)按照11.3.2规定,确保报文字段的值为当前值;d)将表24中规定的值插入到报文的logMessageInterval字段。接收相关联Delay_Rep报文后应尽快发送DelayResp报文。83 GB/T25931—2010/IEC61588:20099.5.13Pdelay_Req报文的发送9.5.13.1通用要求只有当满足以下所有条件时,时钟在端口上发出Pdelay_Req报文:——配置设备执行对等延时机制,见8.2.5.4.4;——允许设备按照9.5.13.2的时间要求进行操作。本Pdelay—Req报文的字段应符合11.4.3要求。注:如果时钟使用的PTP行规规定了仅谐振(syntonlze-only),则不要求时钟启动对等延时机制或延时请求一响应机制。在该情况下,不要求维护对等延时机制状态信息。9.5.13.2时间要求从请求端口发送Pdelay—Req报文应遵循如下限制:——如要求,可发送初始的Pdelay_Req报文;——后续Pdelay_Req报文的发送,应使得以2为底的报文发送间隔(单位为s)的平均值的对数,不小于由发送时钟数据集portDS.109MinPdelayReqInterval成员的值计算出的时间间隔。9.5.14PdelayResp报文的发送接收相关联的Pdelay—Req报文后应尽快发送Pdelay_Resp报文。9.5.15Pdelay—Resp—Follow_Up报文的发送发送相关联的Pdelay—Resp报文后应尽快发送Pdelay_Resp_Follow—Up报文。9.6本地时钟的改变由于1)本地时钟内部特性的变化(如本地振荡器干扰);或2)同PTP外部交互的变化,如从与本地时钟直接同步的GPS接收器接收到的信息变化,可导致数据集的更新。所有导致的数据集变化,对于任何其他数据集访问动作而言,包括9.2.6.8规定的动作,都应是原子性的。10透明时钟的PTP10.1端到端和点到点透明时钟的通用要求所有透明时钟都应按照网络寻址规则转发所有的非PTP报文。对于所有透明时钟,PTP版本1的所有报文:——应按照网络寻址规则被转发;——透明时钟不应对PTP版本1的报文进行任何驻留时间或路径延时的校正;——不禁止对PTP版本1报文的驻留时间或路径延时的校正。这超出本标准范围。所有透明时钟应根据第12章谐振到最高级时钟。应支持到多个域的谐振。对于实现谐振的时钟,术语“主谐振域”被定义为domainNumber0,或者如果缺省为配置到新域,则被定义为配置的缺省域。如果透明时钟实现了谐振,应按照以下动作:a)缺省地,它应谐振到主谐振域的主时钟;b)主谐振域可被配置为非domainNumber0的域;c)如果实现了谐振到多个域,应维护到每个域的主时钟的谐振;d)透明时钟对事件报文进行的所有驻留时间和链路延时的校正,都应基于驻留时间和链路延时测量的先后顺序:1)t由谐振到相同域的其他时钟完成测量,域通过进入事件报文的domainNumber字段指示;2)由谐振到主谐振域的时钟完成测量。84 GB/T25931—2010/IEC61588}2009如果透明时钟未实现谐振,由透明时钟进行的对事件报文的所有驻留时间和链路延时的校正,都应基于非谐振自由运行的时钟对驻留时间和链路延时的测量。10.2端到端透明时钟要求所有PTP版本2的报文都应按照网络寻址规则被转发。对所有PTP版本2的事件报文和任何受影响的通用报文的处理,应满足¨.5的驻留时间校正要求。端到端透明时钟不应实现11.4的对等延时机制。10.3点到点透明时钟要求应实现11.4的对等延时机制。所有PTP版本2的Announce、Sync、FollowUp、Management和信号报文,应按照网络寻址规则被转发。对所有PTP版本2的Sync和Follow_Up报文的处理,应满足11.5的驻留时间校正要求和11.4.5的路径延时校正要求。所有PTP版本2的Delay—Req和Delay—Resp报文都应被丢弃。1时钟偏移,路径延时,驻留时间和不对称校正11.1通用规范第11章规范中给出的机制用于传输事件报文源产生的时间戳和任何所需的校正,以保证事件报文接收方接收到可能的最精确的时间戳。originTimestamp或preciseOriginTimestamp与correctionField字段之间的时间信息的实际分发是实现相关的,假设分发应为:执行时间戳字段和correctionField计算的接收设备(见下面各章条的规定)获得可能最精确的时间戳。第11章规定了:a)主从时钟之间的时间偏移计算,即(offsetFromMaster);b)延时请求一响应机制:该机制测量一对端口间的(meanPathDelay),各端口都支持9.2.5的状态机;c)对等延时机制:该机制测量一对端口间的(meanPathDelay),各端口都支持对等延时机制}d)对点到点透明时钟中的,其中所有时间是在同一时刻测量的。一(syncEventlngressTimestamp)一(originTimestamp>一(meanPathDelay>Sync报文的correctionField;c)如果Sync报文的flagField的twoStepFlag为TRUE,表明将接收Follow—Up报文,则:一(preeiseOriginTimestamp)一(mean—PathDelay)一Sync报文的correctionField--Follow_Up报文的eorrectionField其中:——(originTimestamp>应为接收到的Sync报文中originTimestamp字段的值;——(preciseOriginTimestamp)应为接收到的Follow—Up报文中preciseOriginTimestamp字段的值;——如果端口被配置为使用延时请求一响应机制,则(meanPathDelay)应按11.3规定;——如果端口被配置为使用对等延时机制,则(meanPathDelay)应按11.4规定。11.3延时请求-响应机制11.3.1延时请求一响应机制通用要求延时请求响应机制测量一对PTP端口间的(meanPathDelay),其每个端口都支持9.2.5的状态机。延时请求一响应机制使用的报文有Sync、Delay—Req、Delay—Resp和可能的Follow—Up,如图34的时序图所示。该机制应在两个时钟的各支持域中独立执行。图34中,Sync报文的时间戳t-和tz,以及Delay—Req报文的时间戳t。和t。,应按照7.3.4.2定义的方法进行测量。时间戳r,和tt应使用主时钟节点时间进行测量,时间戳t:和t。使用从时钟节点时间进行测量。如果已知连接进入端口和离开端口的路径的delayAsymmetry(见7.4.2),应进行11.6的校正。注:(meanPathDelay>的标称值可按照下式计算,的计算如下:(meanPathDelay>一[(f2一t3)+(Delay_Resp报文的receiveTimestamp--Sync报文的origin—Timestamp)--Sync报文的eorrectionFieldDelayResp报文的correctionField]/2。2)如果接收到的Sync报文指示将接收Follow—Up报文,则(meanPathDelay)的计算如下:=[(t2一t3)+(DelayResp报文的receiveTimestamp—Follow—Up报文的preciseOriginTimestamp)Sync报文的correctionFieIdFollow—Up报文的cotrectionFieldDelay_Resp报文的correctionField]/2。注;延时请求一响应路径长度测量通常使用Delay_Req报文前最近一次的Syne报文与相应的Follow—Up报文的时间戳和correctionField。然而,延时请求一响应测量可使用任何的Sync报文和相应的Follow—Up报文,尽管这将降低计算出的的精度。11.4对等延时机制11.4.1对等延时机制通用要求对等延时机制测量端口到端口的传播时间,即两个支持对等延时机制的通信端口间的链路延时。应在设备的所有端口中执行该测量,包括那些被较低层协议所阻塞(blocked)的端口。支持这一要求的寻址或其他机制是网络特定的,并在本标准的相关附录中进行规定。该链路延时测量应由每个实现对等机制的端口独立地进行。注:此要求意味着链路两端的端口已知链路延时。它允许网络重新配置时立即校正路径长度。在普通时钟和边界时钟里,对等延时机制应与各端El是主时钟或从时钟无关。对等延时机制使用的报文有:Pdelay~Req、Pdelay—Resp,和可能的Pdelay—Resp—Follow—up,如图35的时序图所示。 GB/T2593卜一2010/lEG61588:2009节点A延时请求者时间节点B延时请求者时问】fl\!蜘一Req\?”“”==歹7—L一,。,/.,,一一一一,一7彳二ayn。。,_F。uow_。。图35对等延时链路测量在图35中,Pdelay_Req报文的时间戳t。和tz,以及Pdelay_Resp报文的时间戳t。和t;按照7.3.4的定义进行测量。如果已知连接进入端El和离开端口的链路的delayAsymmetry(见7.4.2),应进行11.6的校正。时间戳t,和t一由节点A按如下步骤测量:——如果节点A为点到点透明时钟,则所用时标规定见10.1;——如果节点A为普通时钟或边界时钟,则所用时标为时钟域的时标。时间戳t。和t。由节点B按如下步骤测量:——如果节点B为点到点透明时钟,则所用时标规定见10.1;——如果节点B为普通时钟或边界时钟,则所用时标为时钟域的时标。注:(meanPathDelay)的标称值的计算为:如下:(meanPathDelay)一[(t4一t1)一(responseOriginTimestamp—requestReceiptTimestamp)一Pdelay_Resp的correctionField-Pdelay_Resp_Follow_Up的correcti。nField]/2当接收到Pdelay—Req报文时,延时响应方节点B应尽快发出相关联的Pdelay—Resp报文,并符合本条的其他要求,使周转时间t。一t。最小。注:可按10.1的谐振来减小由过大的周转时问值引人的误差。11.4.4对等延时机制使用中的限制对于每个发送的Pdelay—Req报文,延时请求方节点A可接收到0、1或者多个Pdelay_Resp报文。通过观察Pdelay—Resp报文不同的sourcePortIdentity字段,可检测出多个响应。注:如果在节点A与多个节点B设备之间存在端到端透明时钟或普通网桥.或者其他类似的多播和多端口设备,则会出现多个响应。尽管可以区分多个响应,但是在本标准中没有这样的机制,以允许与多个节点B设备的每个响应相关联的路径长度,被正确地分配到接收到的sync报文。在这些情况下应有如下动作:a)当没有接收到Pdelay—Resp时,节点A应周期性的重传Pdelay—Req报文来检查节点B的存在。这种情况下的重传率是实现特定的;b)当接收到单个Pdelay—Resp时,应按规定执行11.4的协议;c)当接收到多个Pdelay_Resp时,节点A应:1)如果是普通时钟或边界时钟,则进人FAUI。TY状态;或如果是点到点透明时钟,则进入故障状态。这种情况下,设备可周期性地重传Pdelay—Req报文来检查对该状态的处理。此时的重传率是实现特定的,应丢弃端口接收到的Sync和Follow_Up报文。2)采取实现特定措施来解决此问题。11.4.5透明时钟的路径延时校正11.4.5.1点到点透明时钟当接收到Sync报文时,点到点透明时钟的端口应:a)如果时钟是单步点到点时钟,在各离开端口发送完Sync报文之前,将(meanPathDelay>的值加到Sync报文的correctionField。其中的值是按照对等延时机制,对连接接收Sync报文的进入端口的链路进行测量得到的。b)如果时钟是双步点到点时钟,则在各离开端口上发送FollowUp报文之前,将的值是按照对等延时机制,对连接接收Sync报文的进入端口的链路进行测量得到的。应在任何驻留时间的校正之后,将(meanPathDelay>加到correctionField,见11.5.2.2。注1:为了正确关联Sync和FollowUp报文,要求透明时钟维护Sync报文的sequenceId和sourcePortIdentl‘y的记录,来同Follow_Up报文的sourcePortlden?tity和sequenceld字段进行比较。注2:如果透明时钟支持该精度,则correctionField的数据类型允许将(meanPathDelay)表示到小数纳秒(ns)。11.4.5.2端到端透明时钟一个端到端透明时钟不应校正进入端口或离开端口的路径延时。11.5对于PTP版本2事件的透明时钟驻留时间校正11.5.1驻留时间计算透明时钟应对于所有版本2事件报文生成一个进入时间戳(见7.3.4.2),指示在进人端口接收到事件报文的时间。透明时钟应对于所有版本2事件报文生成一个离开时间戳(见7.3.4.2),指示在离开端VI发送事件报文的时间。注:通常,离开时间戳在透明时钟的各离开端Vl有一个不同的值。所有的时间戳应按10.1在域内进行测量。如果已知连接进入和离开端口的路径的delayAsymmetry(见7.4.2),应进行11.6的校正。对于各离开端口,每个这样的事件报文的驻留时间计算如下:(residenceTime>=离开时间戳进入时间戳。11.5.2Sync报文的驻留时间校正11.5.2.1单步透明时钟当正在发送Sync事件报文时,表达到小数纳秒(ns)。对于任何接收到的Follow—Up报文应不进行修改。11.5.2.2双步透明时钟如果接收到的Sync报文的twoStepFlag是FALSE,则表明将不接收Follow—Up报文,然后:a)应将接收到的Sync报文的twoStepFlag设为TRUE,指示随后将有Follow—Up报文。尽快在离开端口发送Sync报文,并对校验和或者该报文的其他内容相关字段进行任何需要的校正。修正后的Sync报文应用于生成离开时间戳,来计算Sync报文的驻留时间。b)应在离开端口准备发送Follow—Up报文,步骤如下:1)应将接收到的Sync报文的originTimestamp复制到Follow—Up报文的preciseOriginTimestamp字段;2)应将接收到的Sync报文的sequenceld复制到Follow—Up报文的sequenceld字段;3)应将接收到的Sync报文的sourcePonIdentity复制到Follow—Up报文的sourcePortldentity字段;4)应将接收到的Sync报文的domainNumber复制到Follow_Up报文的domainNumber字段;5)应将接收到的Sync报文的logMessageInterval复制到Follow_Up报文的logMessageInterva[字段;6)应将接收到的Sync报文报文头的flagField复制到Follow—Up报文的flagField,并且将twoStepFlag设为TRUE;7)应将Follow_Up报文的correctionField设为(residenceTime>。对于点到点透明时钟,这应在91 GB/T25931—2010/mc51588:2009校正表达到小数纳秒(ns)。如果接收到的Sync报文的twoStepFlag是TRUE,则表明将接收Follow_Up报文,然后:a)应通过离开端口发送接收到的Sync报文。该Sync报文应用于生成离开时问戳,以计算Sync报文的驻留时间。b)在离开端口发送之前,应将,以加入到与Pdelay—Req报文相关联的Pdelay_Resp—Follow_Up报文的correctionField中。如果接收到的与Pdelay—Req报文相关联的Pdelay—Resp报文的twoStepFlag是FAI。SE,则表明将不接收Pdelay—Resp—Follow—Up报文,然后:a)应将接收到的Pdelay—Resp报文的twoStepFlag设为TRUE,表明随后将有Pdelay—Resp—Follow—Up报文。尽快在离开端VI发送Pdelay—Resp报文,并且对校验和或者报文的其他内容相关字段进行任何必需的修改。该修改后的Pdelay—Resp报文应用于生成离开时间戳,以计算Pdelay—Resp报文的(residenceTime>。b)应准备发送Pdelay—Resp—Follow—Up报文,步骤如下:1)将接收到的Pdelay_Resp报文的sequenceId复制到Pdelay—Resp—Follow—Up报文的sequenceId字段;2)将接收到的Pdelay_Resp报文的requestingPortIdentity复制到Pdelay_Resp—Follow—Up报文的requestingPortIdentity字段;3)将responseOriginTimestamp设为0;4)将接收到的Pdelay—Resp报文的domainNumber字段复制到Pdelay—Resp—Follow—Up报文的domainNumber字段;5)应将Pdelay_Resp_Follow_Up报文的correctionField设为Pdelay_Resp的(residenceTime>同与Pdelay_Resp报文相关联的Pdelay_Req报文的(residenceTime)之和。如果接收到的Pdelay—Resp报文的twoStepFlag是TRUE,则表明将接收Pdelay—Resp—Follow—Up报文,然后:a)接收到的Pdelay—Resp报文应在离开端VI发送。该Pdelay—Resp报文应用于生成离开时间戳,以计算Pdelay—Resp报文的驻留时间。b)在离开端口发送之前,应将Pdelay—Resp的同与Pdelay—Resp报文相关联的Pdelay_Req报文的(residenceTime>之和,加到与Pdelay—Req报文相关联的Pdelay—Resp—Follow—Up报文的correctionField。注1:为了正确关联PdelayReq、Pdelay_Resp和Pdelay_Resp—Follow—Up报文,要求透明时钟维护Pdelay_Req报文的sourcePortIdentity和sequenceld字段的记录,以同Pdelay—Resp和PdelayRespFollow—Up报文的re—quesfingPortldentity和sequenceld进行比较。注2:如果透明时钟支持该精度,则correctionField的数据类型允许将+Sync报文的correctlonFleld。c)如果Sync报文的flagField的twoStepFlag比特是TRUE,表明将接收Follow—Up报文,则(eorrectedMasterEventTimestamp)一(preeiseOriginTimestamp>+(meanPathDeIay)+Sync报文的correctionField+Follow_Up报文的eorrectionField。其中:——(originTimestamp)是接收到的Sync报文的originTimestamp字段值;——(preciseOriginTimestamp>是接收到的Sync报文的preciseOriginTimestamp字段值;——如果端口被配置为使用延时请求一响应机制,那么(meanPathDelay)应如11.3所规定;——如果端口被配置为使用对等延时机制,那么(meanPathDelay)应为如11.4所规定。然后利用(syneEventIngressTimestamps>的序列和(correetedMasterEventTimestamps>的序列,来调整时钟A的时间变化率,以使其对准到最高级时钟的时间变化率。注:作为一个示例,主时钟频率和时钟A频率的比值,可以估计为在一个接收到的时间戳和若干syncInterva|后接收到的第二个时间戳之闻,时钟A经过时间与主时钟经过时间的比值,即:(syncEventlngressTimestamp)N一(syncEventIngressTimestamp)。(correctedMasterEventTimestamp)N一(correctedMasterEventTimestamp)。其中N是隔开时间戳的syncInterval的个数(N>0)。这样,时钟A的频率可以根据这个因子进行调节。95 GB/T25931—2010/]EC615881200912.1.3基于其他机制的谐振在一些网络中,存在对时钟是可访问的、用于谐振两个时钟的物理信号。如果时钟A到时钟B的谐振与最佳主时钟算法(见9.3)建立的同步层次结构相匹配,即Sync报文是由时钟B发送到时钟A的,就可以使用这样的信号。这些不在本标准范围内。12.2同步在一个域内,一个端口处于SI。AVE状态的普通时钟或边界时钟,应同步到同步层次结构中它的主时钟,该同步层次结构由最佳时钟算法建立。同步的特定含义不在本标准范围之内,但会使从时钟按11.2计算出的中时钟标识符的列表,见16.2.3。16.2.9PATHTRACE—ENABLE管理报文该管理报文可用于使能或禁止路径追踪机制。PATH—TRACE—ENABI。ETI。V数据字段的规定见表80。表80PATHJRACE—ENABLE管理TLV数据字段比特TI。V八位位组76543210数据偏移OEN10保留1l16.2.9.1EN(Boolean)EN的值为TRUE指示路径追踪机制是可运行的;反之,指示该机制是不可运行的。16.3备选时标(可选)16.3.1概述通过发送一个ALTERNATE—TIME—OFFSETINDICATORTI.V实体,最高级时钟可以指示备选时间与它的节点时间之间的偏移。可以维护多个备选时标。设计为支持该选项的节点是最高级时钟时,应维护资源以支持一个实现特定的备选时标个数。每个支持的备选时标可以由该选项的TI.V中的keyField字段值标识,并由AI。TERNATE—TIME—OFFSETINDICATORTI.V中的displayName字段描述。键值应为从0开始到(maxKey)值结束的连续值。可以使能或禁止每个支持的备选时标。注:不要求来自不同制造商的节点发送的键值对应到相同的备选时标。一个节点应在所有Announce报文中为每个被使能的备选时标发送一个AI。TERNATE—TIME—OFFSET—INDICATORTLv。如果一个备选时标被禁止,则节点不应发送该ALTERNATE—TIME—OFFSET—INDICATORTI。V实体。一个备选时标可以具有不连续性(例如,在夏令时间的开始和结束时刻)。备选时间偏移指示器不应用于指示UTC相对PTP时标的偏移或即将发生的偏移的变化。如果一个不连续(跳跃)即将发生,节点应在不连续即将发生前所发送的至少portDS.announceReceiptTimeout+1个Announce报文的连续序列中指示该情况。该不连续的时间和大小应按表81中规定的jumpSeconds和timeOfNextJump字段来指示。如果一个接收到的ALTERNATE—TIME—OFFSET—INDICATORTI,V实体的jumpSeconds字段是非零值,则指示即将发生一个不连续;如果接收节点的时间大于接收到的TLV中timeOfNextJump字段的值,则该节点应忽略这个TLV。备选时标机制的属性可以用ALTERNATE—T1ME—OFFSET—ENABLE、ALTERNATE—TIME一0FFSET—NAME和ALTERNATE—TIME—OFFSET—PROPERTIES管理TLV来管理。16.3.2边界时钟转发不是最高级时钟且实现了备选时标选项的边界时钟,应在它发送的任何Announce报文中,转发包131 GB/T25931—2010/IEC61588:2009含在所有ALTERNATE—TIME_OFFSET—INDICATORTLv实体中的信息,而这些TLV实体是包含在该边界时钟最近从其主时钟接收到的Announce报文中的。注:从时钟和它最高级时钟阃的系统中的所有边界时钟都应实现备选时标选项。16.3.3ALTERNATE—_TIME—OFFSET—INDIcAToRTLV规范16.3.3.1概述ALTERNATE—TIME—OFFSET—INDICATORTLV格式定义见表81。表81ALTERNATE_TIME_OFFSET_INDICATORTLV格式比特八位位组TLv偏移76543210tlvType2OlengthField2keyField14currentOffset45JumpSeconds49timeOfNextJump613diplayNameL19填充M19+L16.3.3.2tlvTypetlvType的值应是AI,TERNATE—TIME—OFFSET-INDICATOR。16.3.3.3keyField(UInteger8)keyField的值应指示本TLV实体中报告的备选时标。16.3.3.4currentOffset(Integer32)currentOffset的值是备选时间对节点时间的偏移,以秒为单位。备选时间是该值与节点时间的和。16.3.3.5jumpSeeonds(Integer32)jumpSeconds的值应是备选时间的下一个不连续时间的长度,以秒为单位。零值表示无不连续。正值表示不连续将引起备选时间的currentOffset增加。16.3.3.6timeOfNextJump(UInteger48)timeOfNextJump的值应是下一个不连续将发生时的发送节点时间的秒值部分。不连续发生在timeOfNextJump值指示的秒的开始时刻。16.3.3.7displayName(PTPText)dispayNarne的值是备选时标的文本名称。注:应使用通用首字母缩略词,例如:NTP、PT、PST、PDT分别表示网络时间协议、太平洋时间、太平洋标准时间以及太平洋夏令时问。displayName.textField字段(见5.3.9)的最大符号数应为10。16.3.3.8填充(Octet[M])填充字段是长度为M的八位位组数组,其中M为1或0。如果M为1,则八位位组中所有比特应为0,见15.5.2.2。16.3.4ALTERNATE—TIME—-oFFSET_ENABLE管理报文ALTERNATETIIVIEOFFSET二ENABLE管理TIⅣ允许在一个时钟中使能或禁止指示的备选时标。该数据的维护是实现特定的。ALTERNATE—TIME—OFFSETENABLE管理TLV数据格式规定见表82。】32 GB/T25931—2010/tEC61588:2009表82ALTERNATETIME_OFFSET_ENABLE管理TLV数据宇段比特TI』V八位位组76543210数据偏移kevField10O0EN116.3.4.1keyField(UInteger8)keyField的值应指示被该TI,V实体使能或禁止的备选时标。值FFts应指示最高级时钟维护的所有备选时标被使能或禁止。如果该值不与一个被维护的备选时标相关,则应忽略内容并返回一个MANAGEMENT—ERROR—STATUSTLV。16.3.4.2EN(Boolean)如果EN为TRUE,应将keyField值指示的时标的AI,TERNATE—TIMESCAI。EOFFSET—IND1CATORTLV附加到Announce报文。如果EN为FALSE,不应附加该TI。v。16.3.5ALTERNATEJIME—DFFSETNAMETLV规范(可选)AI,TERNATE—TIME_OFTNET_NAME管理TLV允许用一个备选时标的时标偏移描述属性配置时钟。该数据的维护是实现特定的。ALTERNATE—TIME—OFFSET—NAME管理TI.v数据格式规定见表83。表83ALTERNATE_TIME_OFFSETNAME管理TLV数据字段比特TLV764321o八位位组数据偏移kevFieldl0displayNameL1填充Ml+I。16.3.5.1keyField(UInteger8)keyField的值应指示该TI。v实体更新或查询的备选时标。如果值是FF。。或者与任何被维护的备选时标不相关,该TLV应被忽略并返回MANAGEMENT—ERRoR—STATUSTI.V。16.3.5.2displayName(PTPText)displayName的值应为备选时标的文本名,见16.3.3.7。16.3.5.3填充(Octet[M])填充字段是长度为M的八位位组数组,其中M为1或0。如果M为1,八位位组中所有比特应为0,见15.5.2.2。16.3.6ALTERNATE_TIMEOFFSET_MAX_KEY管理TLVALTERNATE二TIME-OFFSET—MAX—KEY管理TLV允许一个管理节点确定维护的备选时标个数。该数据的维护是实现特定的。ALTERNATE—TIME—OFFSET—MAX—KEY管理TI.V数据格式规定见表84。表84ALTERNATETIME_OFFSET_MAX—KEY管理TLV数据字段比特TLV八位位组76saszl0数据偏移maxKey10保留1133 GB/T25931—2010/IEC61588:200916.3.6.1maxKey(UInteger8)maxKey的值应指示最大键值。16.3.7ALTERNATE—TIME—OFFSET—PROPERTIES管理TLV(可选)AI。TERNATE—TIME—OFFSET—PROPERTIES管理TI。V允许用备选时标的时标偏移属性配置时钟。如果接收到该TI。V并且报文的actionField为SET,则currentOffset、jumpSeconds、timeOfNextJump的更新应是原子性的。如果这些值中的任一个更新失败,将返回MANAGEMENT—ERROR—STATUSTI。V。该数据的维护是实现特定的。AI。TERNATE—TIME—OFFSET—PROPERTIES管理TI。v数据格式定义见表85。表85AuFERNATE_TIME_OFFSET—PROPERTIES管理TLV数据字段比特TI。V八位位组76543210偏移kevField1Ocu”ent()ffset4lJumpSeconds4time(){NextJump69保留11516.3.7.1keyField(UInteger8)keyField的值应指示该TLV实体更新或查询的备选时标。如果值是FF。。或与任何被维护的备选时标不相关,该TI.V应被忽略并返回MANAGEMENTERROR—STATUSTLV。16.3.7.2currentOffset(Integer32)currentO{fset的值是备选时间的偏移,见16.3.3.4。16.3.7.3jumpSeconds(Integer32)jumpSeconds的值应是下一个不连续的大小,见16.3.3.5。16.3.7.4timeOfNext3ump(UInteger48)timeOfNextJump的值应是下一个不连续将发生时的时间,见16.3.3.6。17状态配置选项171概述本章规定附加可选特征,可用来与最佳主时钟算法联合使用以增强性能或者加强对端口状态选择的更多控制。许多应用要求一个或多个下列性能:——通信网络中中断的自动恢复;——时钟失效的自动恢复;——对端口状态选择的明确控制。本标准提供几种设计特征以满足这些要求。普通时钟与边界时钟(第9章)中的最佳主时钟算法以及状态机的运行,保证系统中存在的最佳时钟是最高级时钟的主从层次结构的建立。这提供了从网络失效以及单个时钟失效中自动恢复的功能。恢复的速度取决于announceInterval以及网络拓扑。]34 GB/T2593卜一2010/IEC61588:2009点到点透明时钟(第10章)提供网络重新配置情况下的快速恢复。由于对等延时机制(见11.4)测量重新配置情况下所有链路上的路径延时,所以所需的路径延时校正信息立即可用。注:这些选项应小心使用。例如,如果有些连接到通信路径的时钟被配置为使用可接受主时钟表,有些没有,则可能超过一个以上的时钟自认为是最佳主时钟。如果用不兼容的可接受主时钟表配置连接到通信路径的时钟,可能超过一个以上的端口自认为是最佳主时钟。可能发生与任何这些选项的配置机制不一致的类似误配置。17.2选项的数据类型17.2.1概述17.2的数据类型规范可用于第17章的任何实现的选项,如下:——PortAddressQueryTable:--AcceptableMaster;——-AcceptableMasterTable:第5章的所有规范适用于17.2定义的数据类型。17.2.2PortAddressQueryTablePortAddressQueryTable类型表示端口地址以及查询间隔的列表。structPortAddressQueryTable{UInteger16maxTableSize;Integer8logQueryInterval;UInteger16actualTableSize;PortAddressEactualTableSize]portAddress;/;maxTableSize是实现特定的,应是actualTableSize的最大允许值。17.2.3AcceptableMasterstruetAeeeptableMasterPortAddressacceptableAddres8;UInteger8alternatePriority1;};17.2.4AcceptableMasterTablestructAcceptableMasterTabl8UInteger16maxTableSize;UInteger16actualTableSize;AcceptableMaster[actualTableSize]acceptableMaster;);maxTableSize是实现特定的,应是actualTableSize的最大允许值。17.3最高级时钟簇(可选)17.3.1通用规范最高级时钟簇选项要求在最高级时钟簇的成员间单播传输。当使用最佳主时钟算法的正常操作时,从一个最高级时钟的失效中恢复所需的时间取决于announceInterval。如果从一个最高级时钟切换到另一个最高级时钟的要求时间与多播announceInterval不兼容,17.3的机制可用来减少选择一个新最高级时钟的所需时间。如果实现了该选项,单播协商选项(见16.1)也应实现。2~5个普通时钟或边界时钟可指定为一个最高级时钟簇。为正确运行,簇中的每个时钟应将defauhDS.Priority1的值配置为:簇中所有成员的defaultDS.Priority1的值小于域中所有其他时钟的13j GB/T25931--2010/IEC61588:2009defaultDS.Priority1的值。注:尽管设计用于增强最高级时钟的切换性能,在有些拓扑中,该机制对将主一从层次结构中处于最高级时钟下的主时钟指定为簇可能有用。用于这种目的的主时钟簇的配置不在本标准的范围内。17.3.2最高级时钟簇的运行簇中的每个时钟应:a)用数据类型PortAddressQueryTable(见17.2.2),维护一个已配置的潜在最高级时钟的表。表的每个portAddress成员都应保存最高级时钟簇成员的一个端口协议地址,以使能成员间的单播传输;b)用单播报文协商选项(见16.1)周期性地请求来自(grandmasterClusterTable)portAddress成员所列的所有端口的单播Announce报文;c)如果端口正在依据本条发送一个单播Announce报文,并处于MASTER状态,将flagField.alternateMasterFlag设为FAI。SE,否则将其设为TRUE;d)将不应更新。对于这种情况,managementErrorId应为WRONG—VAI,UE。如果该TI。V的grandmasterClusterMembers中的PortAddress数组不能完全存储,则不应更改的成员的相应的协议地址。17.3.4.4填充(Octet[M])填充字段是长度为M的八位位组数组,其中M为1或0。如果M为l,八位位组中所有比特应为0,见15.5.2.2。17.4备选主时钟(可选)17.4.1概述该选项允许不是当前最佳主时钟的备选主时钟与从时钟端口交换PTP时间信息,并且从时钟端口获取它本身与每个备选主时钟间的传输路径特征。当最佳主时钟失效时,允许一个从时钟以一个小相位偏移切换到一个备选主时钟。17.4.2备选主时钟的报文发送一个端口应按表87的限制发送多播Announce报文。依据17.4的条款发送Announce报文的端口应将alternateMasterFlag(见13.3.2.6)设为TRUE。这些报文应以logAnnounceInterval定义的间隔发送,见8.2.5.4.1。一个端口应按表87的限制发送多播Sync报文,如果是一个双步时钟还应发送Follow—Up报文。依据17.4的条款发送Sync或Follow—Up报文的端口应将alternateMasterFlag设为TRUE。这些报文应以表87中定义的间隔发送。注:不想使用来自备选主时钟信息的从时钟节点仅仅忽略alternateMasterFlag为TRUE的所有报文。端口应维护表87中规定的可配置属性。该信息的维护是实现特定的,不属于第8章中节点的数据集部分。表87备选主时钟属性名称类型描述不处于MASTER状态的端口A,当其他端口的数量小于(numberOfAhernateMasters),并且这些端口:(numberOfAlter-·当前正在发送合栉的(见9.32.5)flagField.ahernateMasterF[ag为UInteger8TRUE的Announce报文,这些报文正在被端口A接收;nateMasters)·将通过最佳主时钟算法优先于端口A被选为最佳主时钟;端口A应发送多播Announce报文。(numberOfAiternateMasters)的缺省值应为0的值。17.5单播发现(可选)17.5.1概述单播发现选项允许将PTP用于不提供多播的网络(例如,多个IP网络)。从时钟端1:1的配置通过潜在的主时钟地址实现。从时钟可请求这些主时钟发送单播Announce、Sync、DeLay—Resp报文给它。如果实现了该选项,则单播协商选项(见16.1)也应实现。17.5.2单播发现的运行一个普通时钟或边界时钟应维护一个已配置的主时钟表(unicastMasterTable)。该表应具有数据类型PortAddressQueryTabLe,见17.2.2。表的每个portAddress成员,都保存该节点试图与之建立通信的一个远程端口的协议地址。节点应使用单播报文协商选项(见16.1)周期性地请求来自的(unicastMasterTable).maxTableSize的值。17.6可接受主时钟表(可选)17.6.1概述可接受主时钟表选项允许将从时钟端口配置为拒绝与不在可接受主时钟列表中的时钟同步。注:这可用于排除与可疑的欺骗或伪装主时钟的同步。17.6.2可接受主时钟表的操作普通时钟或边界时钟应维护一个已配置好的表,即AcceptableMasterTable类型的(acceptable—MasterTable),并为每个端口维护一个可配置Boolean值成员接收合格的Announce报文(见9.32.5),则应使用9.3.4的数据集比较算法来选择E№,,以从该表的TRUE成员中选择作为主时钟的端口。如果端121的表的AcceptableMaster成员的alternatePriomy1成员是0,则al—ternatePriority1成员对Erb哪的计算不起作用。如果alternatePnorilyi成员的值大于0,则为了计算E㈣应使用该表的alternatePri。Ⅲy1成员的值取代来自远程端口的Announce报文中的Priority1的值17.6.3ACCEPTABLE_MASTER_TABLE管理TLV数据字段ACCEPTABLE—MASTER—TABLE管理TLv数据字段的规定见表92。如果actionField为SET时接收到该TLV,则tabelSizeacceptable、MasterTable的更新应是原子性的。如果这些值中任一个更新失败,则将返回一个MANAGEMENT_ERROR—STATUSTLV。表92ACCEPTABLE_MASTER_TABLE管理TLv数据字段比特TLV八位位组76st。z1O数据偏移tableSize20acceptableMasterTableI。2填充M2+L17.6.3.1tableSize(Integerl6)tableSize的值应是(acceptableMasterTable).actualTableSize的值,且不应大于(acceptableMasterTable).maxTableSize的值。17.6.3.2acceptableMasterTable(aeceptableMaster[tableSize])acceptableMasterTable数组的acceptableMaster成员应传送17.6.2中.maxTableSize的值。17.6.5ACCEPTABLEMASTER_TABLE—ENABLED管理TLV数据字段该管理TLV数据字段的规定见表94。表94ACCEPTABLE_MASTER_TABLE_ENABLED管理TLV数据字段比特TLV八位位组7654321O数据偏移0O0ENl0保留117.6.5.1EN(Boolean)EN的值应是(acceptableMasterTableEnabled)的值。18兼容性要求18.1版本2与未来版本的兼容性当节点接收到versionNumber大于2(见7.5.5)的PTP报文时,节点应丢弃该报文。18.2版本1与版本2之间的兼容性不要求节点支持版本1与版本2问的转换。如果支持该转换,则应按18.3和18.4实现。依据PTP版本1实现的PTP节点,与依据PTP版本2实现的节点应通过一个为该目的而设计的边界时钟进行通信。这样的一个边界时钟:a)与版本1节点的通信是通过实现版本1报文发送和协议要求的端口来实现的;b)与版本2节点的通信是通过实现版本2报文发送和协议要求的端口来实现的;c)两种协议版本运行差别的内部解决,包括报文格式的转换以及属性值差别的解决,见18.3、18.4、18.5中的规定。透明时钟转换设备不在本标准的范围内。转换设备应只在portDS.versionNumber设为1的PTP端口上发送版本1报文。portDS.versionNumber设为2的PTP端口上接收到的版本1报文应被忽略。注1:在通信路径内使用的版本自动检测不在本标准范围之内。注2:版本1与版本2端口问转发的多播管理报文不在本标准范围之内。在版本l与版本2边界时钟或普通时钟节点间的转换的特定要求和限制见18.3、18.4、18.5。18.3报文格式和数据类型18.3.1域转换设备应:a)映射版本1的子域值一DFI.T到版本2的domainNumber值0,反之亦然;b)映射版本1的子域值一ALTl到版本2的domainNumber值1,反之亦然;c)映射版本1的子域值一ALT2到版本2的domainNumber值2,反之亦然;d)映射版本1的子域值一AI。T3到版本2的domainNumber值3,反之亦然。非以上规定的域的映射不在本标准范围内。14】 GB/T25931--2010nEC61588:200918.3.2版本1的Stratum与版本2的clockClass转换设备应将版本1的Stratum值映射到版本2的clockClass的值,见表95。表95版本1的Stratum到版本2的clockClass版本1的Stratum版本2的clockClassO6l921032484251255除了表98规定的外,转换设备应将版本2的clockClass的值映射到版本1的Stratum的值,见表96。表96版本2的clockClass到版本1的Stratum版本2的clockClass版本1的Stratum607O9110213~2483251425518.3.3版本1的grandmasterIsPreferred和版本2的Priority1转换设备应将版本1的grandmasterlsPreferred字段映射到版本2的Priority1字段,见表97。表97版本1的grandmasterIsPreferred字段到版本2的Priority1字段的转换grandmasterlsPreferredPriority101281127转换设备应将版本2的Priority1字段映射到版本1的grandmasterlsPreferred和grandmasterClockStratum字段,见表98。表98版本2的Priority1字段到版本1的转换版本2版本1Priority1grandmasterIsPreferredgrandmasterClockStratum0~126101271按表961280按表96>128025518.3.4版本1的clockldentifier和版本2的clockAccuracy以及timeSource版本1的clockldentifier同版本2的clockAccuracy和timeSource的映射不保留这些属性的语义。142 GB/T25931—2010/IEC61588:2009转换设备应将版本l的clockIdentifier映射到版本2的c[ockAccuracy的值,见表99。版本2的timeSource属性值应按表99所示设置。表99版本1的clockIdentifier到版本2的clockAccuracy的映射版本1的clockldentifier版本2的clockAccuracy版本2的timeSourceAT()M2216AToMIC—CI。OCKGPS22】6GPSNTP2Fl6NTPHAND30lBHANDSETINITFD,、oTI{ERDFI。TFEl6INTERNALOSCILLATOR转换设备应将版本2的c[ockAccuracy映射到版本1的clockldentifier值,见表100。当转换到版本1时,版本2的timeSource值应不予考虑。表100版本2的clockAccuracy到版本1的clockldentifier的映射版本2的clockAccuracy版本l的clockIdentlfler20~22I6AToM23~2Fl6NTP30l6HAND31~FDl6INITFEl6DFLT18.3.5版本1的grandmasterlsBoundaryClock宇段与版本2的Priority2字段转换设备应将版本1的grandmasterIsBoundaryClock字段映射到版本2的Priority2字段,见表101。表101版本1的grandmasterlsBoundaryClock字段到版本2的Priority2字段的转换grandmasterlsBoundaryClockPriority2FALSE128TRUE127转换设备应将版本2的Priority2字段映射到版本1的grandmasterIsBoundaryClock字段,见表102。表102版本2的Priority2字段到版本1的grandmasterIsBoundaryCIock字段的转换V2Priority2V1grandmasterIsBoundaryclock0~127TRUE128~255FALSE18.3.6版本1的control和版本2的messageType字段转换设备对版本1的control和版本2的messageType字段问的映射见表103。表103版本1的control和版本2的messageType字段的映射报文报文类版本2的messageType的值版本1的control的值版本l的mes,sageTypeSync事件01600160116Delay_Req事件1160ll60116Pdelay_Req事件2l6N/A143 GB/T25931—2010/]EC61588:2009表103(续)报文。报文类版本2的messa《eType的值版本1的control的值版本1的messageTypePdelay_Resp事件316N/A保留4~716N/AFollow_up通用8l60216Delay_Resp通用9l6031602l6Pdelay_Resp—.Follow——Up通用Al6N/AAnnounce通用B16N/ASignaling通用Cl6N/AManagement通用D1604】602l6保留E~Fl6N/A保留N/A05~FFl6所有其他值18.3.7版本2的sourcePortIdentity和版本1的sourceCommunicationTechnology、sourceUuid、source-Portld将版本1的sourceCommunicationTechnology(其值1用于所有一致的设备),映射到表4中的版本2的通信技术“版本1设备”,反之亦然。注:尽管版本1表2枚举了sourceCommunicationTechnology的许多值,但是在版本1中仅定义了到以太网(版本1附录D)的传输映射,对应于sourceCommunicationTechnology的值1。将版本l的sourceUuid映射到s。urcePortIdentity字段中clockIdentity成员的八位位组2~7,见7.5.2.2.3。版本2的sourcePortIdentity的clockldentity成员:如果依据7.5,2.2.3;将八位位组2~7映射到clockUuid;将通信协议映射到版本1中为相同协议定义的eommunicationId;——如果依据7.5.2.2.2:版本l的communicationld应为0。应将EUF64版本2的clockldentity的6个最低有效八位位组映射到版本1的clockUuid字段的6个八位位组。将版本1的sourcePortld映射到版本2的sourcePortldentity字段的PortNumber成员,反之亦然。18.3.8版本2的grandmasterIdentity和版本1的grandmasterCommunicationTechnology、grandmas-terClockUUID、grandmasterPortId映射规则与18.3.7中的映射规则相同。18.3.9版本2的parcntPortldentity和版本1的pa咖tC删micati仰T耐I肿Io科、par蜘tClockUuid、lmrent—PortId映射规则与18.3.7中的映射规则相同。18.3.10公共报文头的FlagField版本1到版本2的公共报文头标志的转换规定见表104。表104flagField从版本1到版本2的转换版本2的flagField比特设为版本1属性值currentUtcoffsetValid如果Stratum--1或2且标识符不是INIT或DFLT,为TRUE;否则,为FALSEleap61PTPLI6lleap59PTPLI59MternateMasterFlagFALSE 表104(续)GB/T25931--2010/IEC61588:2009版本2的flagField比特设为版本1属性值twoStepFlagPTPASSITtimeTraceable如果Stratum一1或2且标识符不是INIT或DFI。T,为TRUE。否则,为FALSEfrequencyTraceable如果Stratum一1或2且标识符不是INIT或DFLT,为TRUE。否则,为FALSEptpTimeScale如果标识符不是INIT或DFLT,为TRUE。否则,为FALSEunieastFlagFALSE所有其他flagField设为FALSE版本2到版本1的公共报文头标志的转换规定见表105。表105flagField从版本2到版本1的转换版本1标志设为版本2的flagField比特值忽略该信息currentUtcOffsetVMidPTP—I。l一61leap61PTPLI59leap59如果ALTERNATE_MASTER为TRUE,版本2的报文不应被传输到版本1区域alternateMasterFlagPTP—ASSISTtwoStepFlag如果unicastFlag为TRUE,版本2的报文不应被传输到版本1区域unicastFlagPTPSYNCjjURSTFAI。SEPARENT—STATSFALSEPTPEXTSYNCFAI。SEPTPBoUNDARY-CLOCKFAI,SE忽略该信息所有其他标志18.3.11版本2的IogMessageInterval和版本1的Sync报文的syncInterval在转换到版本1时忽略版本2的Announce、Delay—Req、Delay—Resp报文的IogMessageInterval。将版本2的Sync或Follow—Up报文的logMessageInterval转换为版本1的Sync报文的syncInterval。将版本1的Syne报文的sync!nterval转换为版本2的Announce、Sync、Follow—Up报文的log—MessageInterval。将版本1的Sync报文的syncInterval+5转换为版本2的Delay—Req和Delay—Resp的logMes—sageInterval。注:通过将版本1的syncInterval加5来获得版本2的DelayReq和Delay_Resp的logMessageInterval是必要的,以满足7.7.24的要求。18.3.12版本2的类型CloekQuality字段和版本1的Stratum、标识符和方差字段版本2的grandmasterClockQuality字段在版本1的对应字段映射如下:——版本2的clockClass成员到grandmasterCtockStratum的映射是依据18.3.2;——版本2的clockAccuracy成员到grandmasterClockIdentifier的映射是依据18.3.4;——版本2的offsetScaledLogVariance成员在用800016校正偏移后直接映射到grandmaster—ClockVariance,见7.6.3.3。18.3.13版本2的类型Timestamp字段与版本1的epochNumber和类型TimeRepresentation字段版本2的nanosecondsField成员(UInteger32)映射到版本1的nanoseconds成员(Integer32)。】45 GB/T25931—2010/IEC61588:2009版本1的nanoseconds成员如果为正,则映射到版本2的nanosecondsFieid成员;如果为负,由于版本2不允许负的时问戳,则将产生一个错误。版本2的secondsField字段(UInteger48)的最低有效32比特直接映射到版本1的seconds字段,反之亦然。版本2的secondsField字段(UInteger48)的最高有效16比特直接映射到版本1的epochNumber,反之亦然。18.3.14与版本1无对应部分的版本2的字段对表】06中每个版本2的字段,转换设备应采取规定的动作。表106与版本1无对应部分的版本2的宇段版本2的字段报文版本2到版本1版本1到版本2transportSpeclflc公共报文头忽略该信息依据适用附录D~附录I设置message[.ength公共报文头忽略该信息’依据13.3.2.4设置correctionField公共报文头不在本标准范围内·设为018.3.15与版本2无对应部分的版本1的字段对表107中每个版本1的字段,在转换到版本2时,转换设备应采取规定的动作。表107与版本2无对应部分的版本1的字段版本1的字段报文动作versionNetwork公共报文头忽略该信息messagelypeutcReasonablelocalClockVarianceSyne和Delay_Req忽略该信息Ioca[ClockStratumlocalClockIdennflerassoclatedSeouenceIdFollowUp映射到版本2中的公共报文头的sequenceldrequestingSourceSequenceIdDelay_Resp映射到版本2中的公共报文头的sequenceldmanagementMessageKeyparameterLengthManagement每个管理报文的格式和语义在版本1和版本2间映射messageParameters18.4命名变化表108给出了语义保持不变的情况下同样的参量在版本1和版本2中名称的对应。注:语义已发生变化的参量包含在前面的章节中。表108名称对应版本1名称版本2名称estimatedMasterVartanceportDS.observedParentOffsetScaledLogVarianceestimatedMasterDriftportDS.observedParentClockPhaseChangeRate18.5对混合版本1和版本2系统的限制第18章的转换规范允许符合本条规定限制的版本1和版本2的混合系统,版本1和版本2的混合系统应按图36所示进行配置,并遵从表109的任意一行的限制。版本l的Stratum3时钟不应用于版本1和版本2的混合系统的实现中。146 也可能有其他的系统配置和限制,但不在本标准范围内。GB/T25931—2010/IEC61588:2009图36允许的混合系统配置图36示出区域A实现了一个PTP版本,且与一个或多个实现了第二个PTP版本的区域相连接。表109混合系统限制区域A特征区域B特征限制系统中无elockClass6或7的时钟,或Stratuml或Stratum2的版本2的时钟版本1的时钟时钟区域A至少包含一个clockCLass6或7的时钟,并且时钟Priority1版本2的时钟版本1的时钟<128版本2的时钟版本1的时钟任意Stratum1或2的时钟包含在一个单一B区域版本1的时钟版本2的时钟所有区域B的时钟的Priority1>128所有区域B的时钟的Priority1>127且有一个区域A的时钟的版本l的时钟版本2的时钟grandmasterlsPreferred--TRUE任意do&Class6或7的时钟以及Priority1<128的任意时钟均包版本1的时钟版本2的时钟含在一个单~B区域中19一致性19.1一致性目标本章中一致性要求的基本原则是:——提高依据本标准建立的系统的互操作水平;——用可能最广泛的应用范围来鼓励PTP组件制造商;——为持续的技术改进和演变提供机会。19.2PTP一致性要求19.2.1通用一致性规范一致性要求是针对节点规定的。节点应符合本标准的所有条款,除了:——明确标有“可选的”;——对只发布频率且不要求测量路径延时的应用,一个备选PTP行规可规定不实现或激活11.3和11.4的路径延时机制。 GB/T25931—2010/IEC61588:2009对每个实现的选项,节点应符合规定该选项的条款。19.2.2传输一致性规范使用在本标准附录中定义映射的传输协议的节点应符合该附录。使用没在本标准中定义映射的传输协议来传输PTP包时,应由对该传输具有管理权限的标准化组织或其指定机构定义并发布的映射来定义该传输。规定该映射的出版物应由一个PTP行规引用。注:定义传输映射的组织须为传输保留一个枚举值,见74,1。19.2.3PTP行规一致性规范声称兼容性的节点应规定至少一个它所遵守的PTP行规。在缺乏一个合适的备选PTP行规时,应使用两个缺省PTP行规中的一个。缺省PTP行规的规定见附录J。如果一个特定的属性或选项在所选的PTP行规中未作规定,则节点应符合规定相同路径延时机制的缺省PTP行规中规定的值或选择。所有的PTP设备都应支持一个缺省PTP行规。19.3PTP行规19.3.1PTP行规概述19.3.1.1概述PTP行规的目的是允许组织对PTP的属性值和可选特征规定特定的选择。当使用相同的传输协议时,这些特定的选择交互工作并获得满足特定应用要求的性能。一个PTP行规是一组要求选项、禁止选项以及可配置属性的范围和缺省。行规规范应与19.2.1和19.2.2中的规范一致。19.3.1.2PTP行规推荐一个PTP行规应定义:——要实现的最佳主时钟算法选项(见9.3.1);——要实现的配置管理选项(见15.1.1);——要实现的路径延时机制,延时请求一响应(见11.3)或对等延时(见11.4);——PTP所有可配置的属性和数据集成员的范围及缺省值;——要求的、允许的或禁止的传输机制;——要求的、允许的或禁止的节点类型;——要求的、允许的或禁止的选项。一个PTP行规只能通过以下方式扩展本标准:a)使用14.3的TLV机制;b)可选最佳主时钟算法规范,见9.3.1;c)可选管理机制规范,见15.1.1;d)19.2.2的规定;e)7.3.1的规定。19.3.2特定的PTP行规可以开发PTP行规的外部组织包括:a)在行业中拥有管理权限的公认的标准化组织,例如:1EC、IEEE、IETF、ANSl或ITu;b)行业贸易协会或其他类似的在行业中拥有行业标准权威的公认的组织;c)其他合适的组织。PTP行规开发组织应咨询IM/ST委员会精确网络化时钟同步工作组进行技术审查。19.3.3PTP行规规范PTP行规应由行规文档起始处印刷的以下文本标识,如图37所示。在图37中指示的各条定义如下:148 GB/T25931—2010/IEC61588:2009一-profileName:该字段应是行规制定组织指定的行规文本标题,见J.3.1的示例。‘--profileVersion:该字段应是行规制定组织指定的行规版本,版本号有两个字段组成:一个pri—maryVersion(UInteger】6)和一个revisionNumber(UInteger8)。ProfileVersion应印刷为“版本primaryVersion.revisionNumber”。——profileIdentifier:该字段应为一个EUI一48。EUI48的OUI部分由行规制定组织拥有。该组织应保证对组织规定的每个行规和版本profileIdentifier是唯一的。EUl48剩余的八位位组应依次为primaryVersion和revisionNumber。见J.3.1的示例。——organizationName:该字段应是制定行规以及拥有行规标识符OuI的组织的文本名称。——sourceldentification:该字段应是一个URI。、email或常规邮件地址,可向其发送关于行规的查询或复制请求。图37行规印刷形式 GB/T25931--2010/IEC61588:2009附录A(资料性附录)使用PTPA.1概述在分布式系统中,PTP为精确时钟同步提供了简单的算法。当设计这样的系统时,需要解决下列问题:物理设计问题:一时钟是如何物理分布的?,应用什么网络技术?逻辑问题:系统是单一时钟组,还是时钟被分为几个逻辑组,每个组有自己的时间观念。组件问题:时钟需同步到怎样的精度?——什么是系统的时钟源?它应溯源到UTC吗?本地实现问题:如何满足时序要求?一一共享通信网络其他应用如何影响PTP?精度要求如何影响实现?一本地振荡器的设计问题是什么?系统实现问题:系统如何划分?使用哪些选项?一使用哪些行规?性能问题:网络延时和波动如何影响时间精度?一一时钟振荡器的稳定性如何影响时间精度?一致性测试问题:一~有助于一致性和性能测试的特征;~一有助于校准设备时间的特征。A.2_A.9分别阐述每个主题。A.2物理设计时钟通过网络彼此通信。典型地,网络技术的选择是基于主要应用。PTP工作在任何基于数据包的系统中。尽管有可能设计单播PTP组件和系统,但仍将PTP设计成工作在多播的环境。以太网是实现PTP的理想网络,该附录的其余部分将以太网为例。任何网络都要受到距离、允许节点个数和流量的限制。如果要同步的时钟分布超出网络技术的范围,则可以将系统设计为分隔的“时间岛”,同步这些时间岛超出PTP范围。例如,如果系统由相距几英里的两个紧凑的区域组成,在每个区域内可使用PTP,则区域间的同步由另一种技术如GPS提供。在一个区域内,距离、流量和节点个数问题通常通过特定网络组件解决。对于以太网,局部化的节】50 GB/T25931—2010/IEC61588:2009点一般通过网桥通信。对于更大、更复杂的系统,用路由器将系统分为几个仅使用网桥的区域。通常,用这些设备分隔出的每个层次,会给报文在节点间的传输时间引入额外的统计延时和延时波动。PTP被设计为使延时和延时波动的影响最小。为达到最好PTP性能,在具有最严格的时钟同步要求的时钟之问,网络拓扑应将分隔设备的数量限制为最小。边界时钟能改进由路由器进行分隔的网络性能,或代替普通网桥。透明时钟也能代替普通网桥,尤其在许多设备连接成线性拓扑的环境中。没有实现PTP的网桥可能引入明显的时间抖动和路径不对称。尽管在实现PTP的系统中可能包含这样的网桥,但不应使用这些网桥,除非应用可以容忍由它们的时间抖动和路径不对称引入的时间误差,或者通过适当的滤波算法将时间误差减小。A.3逻辑设计大多数应用包含要实现同步的一组时钟。在这种情况下,所有时钟可以放置在单个域中。如果使用在本标准中规定的缺省值和适用的PTP行规,通常不必要组态这些时钟。如果应用需要几组时钟,每组时钟保持一个不同的自相容时基,那么可以应用下列两种方案的一种:——如果应用的其余部分被分在同一个组,也可能用分离的非通信网络;在那种情况下,每组能使用缺省的域。网络路由器通常就是用于这个目的。——如果各个组必须共享同一个网络,那么每个组可能被分配到不同的域中。按期望逻辑地划分时钟。在每个时钟上的处理负荷可能受影响,也可能不受影响,这取决于到网络底层物理地址的映射。除了将PTP节点分配到~个域中,在缺省的情况下,PTP定义一个自由管理系统。在一个域内,只要组件使用推荐的多播通信模型,PTP节点可被增加或被移除,而不必修改地址列表。增加或移除PTP节点可能使一个不同的时钟成为系统的最高级时钟。当系统自动重新校准新延时模式到新的最高级时钟,这可能在时基中引起一个瞬变。本标准为用户提供了几个组态选项,这些用户要求对主时钟的选择或者决定系统性能的不同时序和其他属性实施更多控制。例如,使用Priority1的属性,允许系统设计者为最高级时钟的选择,按优先级顺序指定最多254个设备。A.4组件问题选择PTP系统组件的基本问题是要求的同步精度。——应选择支持给定精度要求的协议特性的时钟;——网络组件和物理设计决策也影响前面章节所述精度。合理设计的以太网PTP系统能容易的实现亚微秒级精度。第二个问题是建立PTP系统历元的技术。在每个域中,历元由根据最佳主时钟算法选择的最高级时钟定义。如果TAI或者UTC可溯源的时间是必须的,那么最高级时钟必须维护一个PTP时基。在一个域中,如果最高级时钟的clockC|ass的最小值是6,7,52或187,则时基是PTP。从PTP时标,可使用PTP分发的currentUtcOffset值计算UTC。断电后这样系统可维护也可不维护该历元;见7.6.2.4。在一个域中,如果最高级时钟的clockClass的最小值是13,14,58,193,216或者更大,则时基是ARB或者是由用户建立的一个时基;见7.6.2.4。这样的系统断电后可维护也可不维护历元。主时钟失效可能是由于它的时间或频率不正确。该问题的检测和恢复不在本标准范围内。某些信息,如在parentDS数据集中维护的父时钟统计数据,可用来帮助检测一个“false—ticking”(伪标)主时15】 GB/T2593卜一2010/mc6158812009钟。建议实现者考虑来自尽可能多的时钟信息,并根据时钟固有稳定性来衡量来自每个时钟的信息。DISABI.E—PORT管理报文可用来帮助从“false—ticking”主时钟的恢复。注意停用或降级一个主时钟有副作用(尤其当它是一个边界时钟),因此决定是否那样做还要考虑除了它的计时质量以外的因素。这个决定超出本标准的范围。A.5本地实现问题A.5.1概述本条为PTP普通时钟、边界时钟和透明时钟的实现提供了一些指南。尽管实现不在本标准的范围内,但实现必须考虑在通过PTP(或其他协议)进行同步的时钟顶部建立的服务,不得降低时钟精度。A.5.2时序问题实现必须满足报文处理和时序要求,也必须满足操作基于PTP报文信息同步本地时钟的伺服系统所必需的任何时序要求。实现必须确保有足够的计算和内存资源可用以满足这些要求。实现也必须确保执行PTP所需的资源比其他共享这些资源的应用具有足够高的优先级,以满足PTP和伺服系统的时序要求。在一个实现中,PTP任务应该被分配最高的优先级,与分配给协议栈和其他操作系统资源的优先级类似。在每个syncInterval中,PTP实现通常需要一个短时的资源占有。系统syncInterval的选择必须与所有系统组件中的可用资源一致。其他应用对网络资源的使用会影响PTP精度,见A.5.3。A.5.3精度问题A.5.3.1概述PTP系统可达到的精度受以下因素限制:——时钟协议栈的延时波动;——延时的不对称;——网络组件的延时波动;——时间戳的精度;——稳定性问题。A.5.3.2协议栈延时波动最简单的PTP实现像普通应用一样运行在网络协议栈的顶部。时间戳在应用级生成。协议栈的延时波动导致这些时间戳的偏差。典型地,取决于操作系统,这些偏差处于几百微秒到毫秒(ps到ms)的范围。实现可在中断级而不在应用级生成时间戳。这种情况下典型地,延时波动可被降低到几十微秒(ps),这取决于其他应用对其他中断的使用以及网络的通信模式。使用硬件辅助技术可最大程度降低由协议栈延时波动引起的偏差。这些硬件辅助技术在协议栈的物理层生成时间戳。典型地,在该点上的延时波动可在纳秒(ns)范围内。例如,在以太网系统中,这些偏差是由PHY芯片的锁相特性引入的,该PHY芯片从输人数据流中修复时钟和数据的同步。该延时波动的影响可通过时钟伺服算法的合理设计来减低。A.5.3.3网络组件延时波动网络组件会在报文的传播时间中引入波动。这直接影响currentDS.offsetFromMaster和currentDS.meanPathDelay值的精度。网桥和路由器会受到存储转发延时波动的影响。典型的以太网网桥具有通过高速背板或交换结构进行通信的输入和输出缓冲器。每个端口典型地直接连接到一个终端设备或其他以太网网桥。产生延时波动的最主要因素是输出缓冲和输出排队。如果输出子网总是可用的,这个延时波动典型地在纳秒范围内,并且可通过平均技术将其减小。到一个包含时钟的节点的密集通信可增大由于其输出缓冲]52 GB/T25931—2010/IEC61588:2009而导致的延时波动。该增大的延时波动更不易被降低。正确的PTP系统设计必须考虑该影响并采取措施来降低影响。大多数网桥和路由器支持通信优先级划分。高优先级通信受到的传输时间波动较小。只要有可能.PTP事件报文与其他数据相比,应按高优先级发送。为每种传输协议推荐的特定优先级,见附录D~附录I。A.5.4时间戳精度PTP要求的生成时间戳的时钟分辨率必须与期望精度一致。注意该分辨率与PTP方差相关,见7.6.3。A.5.5稳定性问题如上所述,引人到currentDS.offsetFromMaster和currentDS.meanPathDelay成员计算的延时波动,可通过对本地时钟任何同步伺服算法的适当设计而减小。必须在平均次数(采样数)和对延时波动以外影响(如振荡器的稳定性)的响应速度之间进行权衡。本地时钟的基本时间稳定性必须与要求的syncInterva[和精度规范一致。在比平均值算法间隔小的时间间隔中,用来减小延时波动的算法不校正本地时钟的漂移。伺服算法不能校正syncInterval内发生的随机漂移。在高精度情况下,要满足驱动本地时钟的本地振荡器的稳定性规范十分困难。在成本与稳定性之间进行权衡。典型地,本地晶振器是石英晶体。石英晶体的频率典型地由于热量、机械和老化影响而漂移。这些影响中,热量影响是大多数应用中最难解决的。例如,一个典型无补偿的晶体的热规格是每摄氏度1PPM。2s的syncInterval内温升1℃会产生大约2ps的偏差。因此,几十纳秒范围内的精度意味着,通过更好的晶体热规格、减小的syncInterval,和更好的热管理的一些组合来降低两个数量级的热漂移。随着计算和网络带宽要求的相应增加,PTP允许根据所选的PTP行规将syncInterval降低到小数秒。1PPM/摄氏度以下的晶体热规格越来越难以达到。温度环境的控制必须认真管理,尤其在高精度实现中。典型地,很长的平均时间需要耐高温晶体或使用更稳定的振荡器。PTP系统的短时热漂移和典型平均时间,经常通过周围设备的散热、节点内的冷却方式、增加振荡器的热质量和类似技术来管理。见Sullivan,Allanetal[B24]对时钟特性的详细讨论。A.6系统实现问题PTP系统是在一起运行的以满足应用需求的PTP组件集合。可互操作PTP系统的协议按本标准规定运行,节点的选择和配置使得协议成功地构建一个主一从时钟层次结构,且在一个端口处于SI,AVE状态的节点能够与一个端口处于MASTER状态的节点同步。一个最佳的PTP系统是可互操作的、可管理的,且可满足应用同步要求的系统。确保由一致的PTP节点组成的系统是最佳系统,这对于系统集成者而言是一个问题。以下推荐有益于构建可互操作的系统。——在整个域中使用单一的传输,或将域划分成数个区域,每个区域使用单一传输,区域间使用边界时钟连接。——在整个系统中使用单一的管理方法。无论是本标准的管理报文机制还是PTP行规中的可选管理机制都是可接受的。——在整个域中使用相同的最佳主时钟算法选择。即使使用边界时钟连接,不保证其几个区域使用不同最佳时钟算法选择的域具有可互操作性。可使用本标准定义的最佳时钟算法,或PTP行规中规定的可选算法。——在整个域中使用相同的状态配置选项的选择(第l7章)。如果使用了状态配置选项,系统集成者有责任确保所选的配置产生一个可互操作的系统。即使使用边界时钟连接,不保证其几个153 GB/T2593卜一2010/IEC61588:2009区域使用不同配置选项选择的域具有可互操作性。——在整个域中使用单一的路径延时机制(见11.3和11.4),或将域划分成几个区域,每个区域使用单一的路径延时机制。区域间使用一个或多个边界时钟连接。——在整个域中使用可互操作的属性和可组态数据集的值集,或者将域划分成几个区域,每个区域使用单一的可互操作集。区域间使用一个或多个边界时钟连接。一一对系统中所有节点的每个属性和可组态数据集成员,使用相同的缺省值。——对系统中所有节点的每个属性,使用相同的要求最大范围值和要求最小范围值。——为了使选项按设计运行并避免可互操作性问题,一些选项必须在系统中的每个节点都存在并激活,例如实验性安全选项。其他选项在实现它们的节点子集上是有效的,即使系统中的其他节点不支持这些选项。而且,这样节点的存在不影响没有实现这些选项的节点,例如单播选项。——在整个域中只使用实现相同PTP行规的节点,或者将域划分为几个区域,每个区域使用同样的PTP行规。区域问使用边界时钟连接,该边界时钟具有解决PTP行规差异的能力。不保证两个PTP行规规范可用于设计能解决差异的边界时钟。例如,不可能确保使用本标准的最佳主时钟算法实现自配置的区域,能够与使用主从层次结构配置的区域实现互操作。——在整个域中只使用实现PTP相同版本的节点,或者将域划分成几个区域,每个区域使用同样的版本(版本1、版本2或者将来的版本)。区域间使用一个边界时钟连接。A.7性能为实现最佳时钟同步性能,应满足下列条件:a)主时钟和从时钟之间网络延时应对称。.b)时钟的时间戳机制或协议路径可能存在不对称延时。如果这些不对称不可忽视,则它们应得到正确的解决,见11.6。c)主时钟和从时钟之间的网络延时,在Delay_Req报文间时间间隔内应为常量。d)由于网络组件和时钟协议栈引起的延时波动应通过以下两个技术来减小:1)对于一个给定时钟的实现,PTP中所用的时间戳应尽量靠近物理层产生。只有报文确实被发送后才能产生最精确时间戳的情况下,实际值在主时钟发出的Follow—Up报文或者在点到点透明时钟发出的Pdelay_Resp—Follow—Up报文中传输。注:对于帮助生成这些时间戳的机制,参见Eidson,etalEP43,IETFRFCl589[B8]和1ETFRFC2783[B13]。2)由协议栈和网络组件引入的、且不能通过边界时钟或透明时钟隔离的残余延时波动,可以通过求平均值来减小。平均值算法超出本标准的范围。e)实现协议的时钟的计算能力必须足够大,并且时钟数量必须足够小,才能满足时间限制。例如,边界时钟和普通时钟的实现者,需考虑处理与节点通信的从时钟发出的DelayReq报文所需的资源。由于资源限制而不能处理这些报文可能导致错过路径延时测量而使同步性能降低。当选择节点和设计系统时,用户需意识到这些限制。f)时钟振荡器必须有足够的固有稳定性和精度,见A.5.4和A.5.5。A.8有助于一致性测试的推荐为帮助:——测试PTP系统的性能;——校准PTP设备;——校验一致性。所有PTP普通时钟和边界时钟应每秒钟提供一个脉冲(PPS)信号,并且脉冲的上升沿与时钟秒计154 GB/T25931m2010/IEC61588:2009时部分的每次增加相一致。如果实现了但不一致,则设备规范应包括1PPS信号与秒增加事件时间的时间偏移。该信号可以是一个可访问的内部测试点,而不必作为嵌人时钟的设备(如传感器)的可见外部输出。A.9在单播网络或具有非PTP网桥和路由器网络中的实现推荐A.9.1概述在具有不支持PTP标准的网桥和路由器的网络中,引人PTP主时钟和从时钟。此外,许多网络不支持多播传输。单播通信模式能用来解决这些问题的一些。只要保留协议行为,7.3.1允许使用单播模型。本条描述当使用单播通信模型时在备选PTP行规中必须规定的问题,以便完成的实现能够在满足宽范围时间要求的网络中工作。一些广域网的要求,如安全性和恢复性,超出本探讨的范围。A.9.2单播模型中的边界时钟和透明时钟在多播模型中,普通时钟和边界时钟自动创建一个同步层次结构而不必事先知道网络拓扑。除管理报文外,保证边界时钟终止所有PTP报文。而且,如果只存在PTP网桥、路由器、透明时钟和普通时钟,保证对等延时机制所使用的报文在相邻点到点时钟终止,从而确保机制正常运行。然而,在单播模型中,上述条件不适用。为了保留协议行为,当使用单播模型时,必须实现下列功能:——正确创建同步层次结构;——正确交换同步所用的时间报文和相关联通用报文;——正确运行测量路径延时的对等延时或延时请求响应机制;——配置时钟的管理机制。实现这些功能的一个方法是,对所有普通时钟、边界时钟和点到点透明时钟进行预先配置,使得从每个端口可看见相邻时钟的单播协议地址。上述的一个例外是,如果使用16.1的单播选项,对于使用延时请求一响应机制的只能作为从时钟的时钟,其地址不必在其他时钟上预先配置。如果使用对等延时机制,配置必须确保从每个端口只能看见一个一点到点时钟,见11.4.4。即使端口之间有网桥、路由器或透明时钟,时钟端口也可能是相邻的。如果端口之间是一个边界时钟,那么时钟端口不是相邻的。当网络重配置时,相邻关系可能改变;在这种情况下,两个端口可通过单播穿过边界时钟进行通信。如果一种可学习拓扑改变的机制可用,时钟能停止非相邻节点之间的所有单播通信,以生成优化的同步层次结构并较好地利用网络资源。如果这样的学习机制不可用,取决于网络拓扑,可使用端到端透明时钟来代替边界时钟或点到点透明时钟。在所有情况下,为实现协议的正确运行,实现必须提供一种可打破转发环路的机制。A.9.3单播选项第17章的配置选项可用来为每个端口配置所需的单播协议地址。16.1的单播选项可用来为Announce、Sync、Delay_Resp、Pdelay—Resp报文和任何相关通用报文建立单播通信。可选地,可通过管理程序创建两个节点间的单播合约。这些合约包括单播地址信息和Sync、Announce和Delay_Req报文各自规定的数据包速率。16.2的路径追踪选项可用于定义一种打破转发环路的机制。因为15.2的管理机制依赖多播模型的使用和边界时钟的转发,用来配置时钟的可选管理机制必须按15.1.1允许的进行规范。A.9.4单播一致性A.9.4.1概述19.2.3规定要声明一致性.一个节点除必须符合PTP标准外,还必须符合一个PTI,行规。该行】55 GB/T25931m2019/IEC61588:2009规必须说明与附录J中缺省PTP行规规范的任何差异。A.9.4.2包括了一些规范的示例,这些规范是实现单播模型以满足A.9.1和A.9.2所讨论的要求所必需的。没有讨论的可能是可选的最佳主时钟算法和可选的基于单播的管理机制。A.9.4.2PTP选项和属性值须支持16.1和17.5中定义的单播选项,且缺省是可运行的。允许15.5.4.1.7和第17章的所有其他选项,但缺省地须是非激活的。如7.3.1允许的,缺省使用单播通信模型式。如果也实现了多播通信型,缺省地必须是非激活的。多播通信是一个推荐选项,为了在这些网络中扩展将来的多播支持,并且允许与支持PTP缺省行规的设备实现互操作。单播报文的时序由单播协商REQUEST—UNICAST—TRANSMISSIONTI.V中的logInterMes—sagePeriod字段的值决定。REQUEST—UNICAST二TRANSMISSIONTI.V的logInterMessagePeriod字段的推荐值如下:——请求单播Announce报文:logInterMessagePeriod的缺省初始化值是1(每2次1s),可组态范围是一3(每8次1s)~3(每8次1s);——请求单播Sync报文:logInterMessagePeriod的缺省初始化值是一4(每16次1s),可组态范围是7(每128次1s)~1(每2次1s);——请求单播Delay—Resp报文:logInterMessagePeriod的缺省初始化值是一4(每16次1s),可组态范围是一7(每128次1s)~6(每64次1s)。每个REQUEST—UNICAST_TRANSMISSIONTLv的durationField值的缺省初始化值为300(300S),可组态范围是10~1000。这些缺省值和组态范匍值的维护和配置是实现特定。在实现GRANT—UNICAST—TRANsMIsslONTLV的机制中,只要请求在可组态范围内,准人值应与接收到的REQUEST二UNICAST二TRANSMISSIONTI.V中所请求的值相同。注:由于传输可能是不可靠的,请求端口在一个实现特定的超时以后,如果没有接收到准入TI。V,应重复该请求。对于接收连续服务,请求方应在准人周期结束之前重新发出该请求。如果没有接收到准入值,推荐的提前量应包含足够的空余时间来至少重发请求两次以上。defaultDS.announceReceiptTimeout、defaultDS.Priorityl、defaultDS.Priority2、defaultDS.slaveOnly和r的值与J.3中的规定一致。物理要求与J.3中的规定一致。 附录B(资料性附录)PTP中的时间戳和历元GB/T25931—2010/IEC61588:2009B.1总则本附录中许多主题的详细讨论见Allan等EBl]、Allan等[B2]、IETFRFC1305(1992)EB7]、ISO8601:2004EBl71、http://tycho.usno.navy.rail/time.htmlEBl8]和Sullivan等EB24]。在一个域内部,时间特性由该域的最高级时钟决定。最高级时钟决定:a)时间增长速率。最高级时钟频率精度由任意两个事件之间决定的时间间隔的精度进行测量的,正如最高级时钟测量的,对应于使用符合国际定义时刻的时钟测量的同一时问间隔。国际定义时刻(sI)是定义TAI时标的时间测量,该TAI时标由巴黎附近的国际度量衡办公署维护。b)时标的原点或历元PTP最高级时钟可用的可能时标和历元如下:——PTP时标:由timePropertiesDS.ptpTimescale值为TRUE指示。该历元是PTP历元。一一ARB时标:由timePropertiesDS.ptpTimescale值为FAI。SE指示。该历元是实现特定的。B.2UTC、TAI和PTP历元TAI和UTC是基于如同在旋转水平面上实现的sI时刻的时间国际标准。UTC由一组原子时钟实现,并形成公共使用的其他时标的守时基础。UTC是大多数工程和商业关心的时标。UTC表示法由ISO8601:2004EBl7]规定为:用YYYY-MMDD表示日期,用hh:mm:ss表示每天的时间。UTC时间增长速率与TAI速率是相同。UTC与TAI的时差是个恒定偏移。该偏移通过加上或减去闰秒来校正。TAI连续地增长,而由于的闰秒的引入UTC则为不连续地增长。从UTC时间1972年1月1日0时开始(校正的儒略日(MJD)41317.0)”,世界的标准时间系统启用闰秒实现,以允许仅用整数秒校正UTC时刻和TAI,它们两个都用d、h、rain和S来表示。这天的TAI减UTC为108。在1972年1月1日以前,UTC和TAI之间偏移的校正以秒的小数部分实现。应用在UTC而不是TAI中的闰秒校正法,推荐在六月或十二月的最后一天的23:59:59这一时刻后进行。第一个这样的校正,单个正闰秒校正是在UTC时间1972年6月30日23:59:59后进行的,且在该时刻后UTC落后TAIllS。注:在UTC时间2006年1月1日0时,TAI—UTC=+33s。在计算机系统中,通用基于POSIX时间转换算法典型地用于生成TAI和UTC正确的ISO8601:2004[B17]印刷表示法。UTC落后TAI固定闰秒数。设置PTP历元,以使POSIX算法到PTP时标时间戳的直接应用,将PTP时间戳转换为ISO8601:2004EBl73中的TAI表示法。PTP也分发Announce报文currentUtcOffset字段中的闰秒6)懦略日(JD)是后面跟有格林威治平正午经过天数的小数部分的儒略日数字(JDN)。JDN是包含原点的一天,儿)一0为公元前4713年1月1Et格林威治平正午。修正儒略日(MJD)是小于24000005的儒略日,其原点转移到1858年11月17日午夜。例如,1900年1月1日0时,JD--24150205且MJD一15020。157 GB/T25931—2010/IEC61588:2009(currentI,eapSeconds>的当前数量。在应用POSIX算法之前,用PTP时间戳减去(currentI£apSeconds)可得ISO8601:2004中的UTC表示。相反地,应用POSIX逆算法并加上(currentl。eapSeconds>,可将ISO860l:2004中UTC格式转换到生成PTP时间戳要求的格式。例如,应用于PTP时间戳值为8s的POsIx算法得到oo:oo:081970:01:01(TAI时间1970年1月1El午夜以后8s)。此时,currentUtcOffset的值大约是8S。PTP时间戳值8减去8S得到0。应用于值为0的PosIx算法生成oo:oo:00i970:01:01(UTC时间1970年1月1日第一秒的开始),其为UTC的期望值。见7.2.2,PTP历元比该时间提前约8S。因此,POSIX算法到PTP时标时间戳的直接应用得到该时间的TAI印制格式。B.3标准时间源有两个标准时间源在PTP系统的实现中特别关注,在该PTP系统中UTC可溯源时间为应用要求的。第一个时间源是实现NTP协议的系统集,广泛用于同步校园内和世界范围内的计算机系统。维护与NTP客户端同步的NTP服务器集。这些服务器本身与可溯源到国际标准的时钟服务器同步。来自NTP系统的UTC时钟精度通常在毫秒级。NTP提供当前时间、当前闰秒数(仅在NTP第4版中支持),以及标记引人闰秒校正的警告标志,该门秒放在UTC当天最后。NTP历元生成一个闰秒校正时,NTP校正NTP秒数(换句话说,NTP时钟(tiI"lJ秒时刻期间有效地停止,并且一旦插入,闰秒占用的时间间隔被有效地“遗忘”)。NTP历元是1900年1月1日0时。将1972年1月1日0时的NTP设置为2272060800.0,以达到与UTC一致。通常,NTP将秒表示为32位无符号整型。因此NTP每2“S≈136年翻转一次,第一个这样的翻转大约发生在2036年。第二个关注的系统是美国国防部维护的全球卫星定位系统(GPS)。GPS系统的UTC时间精度通常在10ns~100ns的范围内。GPS系统传输表示时间为{GPSWeeks,GPSSecondslnLastWeek),即从GPS历元开始的周数和从当前周开始的秒数。可计算出GPS秒,即从GPS历元开始的秒数。GPS提供当前时间,闰秒的当前数量,和标记引入闰秒校正的警告标志。通过GPS时间,UTC和TAI时间可用GPS传输中的信息进行计算。GPS历元开始于1980年1月6日0时(MJD44244)。GPS周以卫星传播模1024周一19.7年来表示。第一个这样的翻转发生在1999年8月15日和8月22日周之间。相信一些但不是全部的商业系统已正确处理该翻转。可以方便地使用这些系统的任意一个来给clockClass为6的时钟提供时间。在每个系统中对于关键时刻,讨论的时标和时间示例之间的关系见表B.1。表B.1中,PTP秒涉及PTP时标分发时间秒的部分,并且注意参考的是TAI时间1970年1月1日。表B.1时标间的关系始于到公式NTP秒PTP秒PTP秒一NTP秒一2208988800+currentUtcOffsetPTP秒NTP秒NTP秒一PTP秒+2208988800—currentUtcOffsetGPS秒一(GPS周×7×86400)+GPSSecondslnI.astWeekPTP秒PTP秒一GPS秒+315964819(GPS周数必须包含1024×翻转次数)PTP秒GPS秒GPS秒=PTP秒一315964819158 附录C(资料性附录)驻留时间和不对称校正实例GB/T25931—2010/IEC61588:2009c.1概述本附录提供了几个实例来阐明时间报文的交换和透明时钟内驻留时间、路径延时及不对称的校正应用。本附录给出时钟间的事件报文传输时间和透明时钟内的驻留时间,且不假定它们在两方向上是相同的。在每个案例中,图中仅包括时间报文的关键字段。图中左边的时钟总是假设为主时钟,或在测量链路延时的情况下,为点到点响应方。代表每个时钟的框中显示的时间,表示设备中的本地时间。在图中时间表示为:秒:纳秒.纳秒的小数部分。例如,144:7.3是144.0000000073S。值得注意的是,报文的时间戳字段不能保留纳秒的小数部分。纳秒的小数部分只能保存在c。rrectionField,在图中表示为纳秒.纳秒小数部分。给出设备中时钟的关系,使得如果需要能计算出相对于主时钟的时间。该关系用Time—Tm+offset的形式表示,其中Tm是主时钟时间,offset是相应时钟和相应主时钟之间的偏移。在报文框显示的时间是应由发送报文时钟输入的时间。例如,在图c.1中,当Syne报文由主时钟发送,通过端到端透明时钟到达从站的过程中,Sync报文的进入时间戳和离开时间戳为:144:7.3,(114:7.3+o.65+100.3),(144:7.3+0.65+100.3+207.4)和(144:7.3+0.65+207.4+0.5+25.2)一144:24l05。第一个离开主时钟的离开时间戳t,。第二个是透明时钟的进入时间戳,通过计算t,和0.65的和得到,0.65是主时钟和透明时钟之间的传输时间;100.3是主时钟的本地时间和透明时钟的本地时钟之间的假设偏移量。该计算会得到透明时钟产生的进入时间戳。其他项的计算是类似的。Delay—Req报文的进入和离开时间戳用相同的方法计算。值得注意的是,相对于从时钟的从时钟离开时间是144:651.1,相对于主时钟是144:651.1—25.2—144:625.9。从站或请求时钟中的计算表示结合时间戳、correctionField和不对称校正来计算偏移和路径延时的过程。这些值总是与图中所用的假设值做比较来阐明协议的运行。图中的字母标注参考标准的具体条款,以指示被说明的要点。除图c.1外,所有的示例都图示对驻留时间和不对称的校正。注:为了清楚表示,本附录中的十六进制数字用0x开始的数字表示。C.2用延时请求一响应机制计算C.2.1给出驻留时间校正的主时钟、端到端透明时钟和所有单步从时钟图C.1给出了在由一个端到端的透明时钟分离的两个普通时钟、一个主时钟和一个从时钟组成的系统中,meanPathDelay和offsetFromMaster的测量和计算。系统中所有的时钟都是单步时钟。在图C.1中,没有给出不对称校正。 GB/T25931—2010/[Ec61588:20091:;:娑。“timc”lm+“l。。”.3nS”。⋯罢撒蒜cl。ck】dcn“n.0XIACDE48234567IABCDcIclckldcnt,t},0XIACDE48234567]EDABdockldcnnt、0X[ACDE4_9234567]FACEs、nc,w。STE—r“s-【厶∑S!ncTV,OSTEPF.mSel△l⋯nFtHt¨llzoT7舞筹揣矧BCD隙舞cquⅢcldlso⋯~nIdcml^bqn¨离然而州。卜s~11ccg’cssL型哩竺竺竺—L』型h㈨443-6065*#H目。050n5#精NMtO55ns)+L。03+r2074Dela、—kqIAywa、Rcq/入【co呲cuonField(ns)l2375C⋯cnonFlcⅢm1Lo5⋯nnJden"pqIFACE:5Is⋯~nJdcⅢ、帅IFAC£qlⅧ⋯c【dl1037』longmq¨_删Ⅲm(⋯)100&144:3州IDeInRcq』Io“4而一"(s∞)loo《1“30q特#W目-055n9⋯ss2“*轱目目;090m144:625叶V”I“。一睑、\J090--1003mlm』eqP型·雩型!!I垫!I醺㈣nc“14L.l864sequential037l啊c1、cn眦s⋯"lsH5|卜l⋯、℃_⋯⋯"“ns)l144:864△lmquen⋯g”10。”“”IIFACEqixlwqu哪n990ft。d∞Ⅲ、Io、_jIFACE.dh)△V么∑⋯1_pathdck=[114424105_144651i)+(144864144T)20775123665v2—13【o5+09.o65Ⅷ55】,2.△无路径T目称《f,o晒from⋯一1“:24105144:7132077=2505、⋯.I255e“of015卸65+05l3图c.1不带不对称校正的主时钟、端到端时钟和单步从时钟表c.1中给出对图C.1关键值的解释。表C.1图c.1关键值的解释关键值参考条款注释9593和时间戳和correctlonFleId的和是tl11.3.2b1l521驻留时间(2074)已经加到correctl。n“eld1l32时间戳设置为0或离开时间戳的估计(144:300)。correctl。nFleld设置为0注意:requestlngP。nldenⅢy和sequenceld是从时钟的对应字段。receiveTimestamp是不d1132包含纳秒小数部分的t。。correctionField是DelayReq报文的correctlonFleld(该值在透明时钟中增加驻留时间【见11.5.32),并减去t。的纳秒小数部分(0.85)第一项是差值(t:一t。)。第二项是接收时间戳和原始时间戳的差值。最后两项是113.2correctionField。注意:计算的meanPathDelay与图中实际假设的平均路径延时值相当按顺序排列的项是t2,originTimestamp、meanPath[)elay和SynccorrectionField。注意:由于f112没有校正传输时间的不对称,计算的偏移误差为O15gll532驻留时间(2375)已由透明时钟加到correctionFieldC.2.2给出驻留时间和不对称计算的主时钟、点到点透明时钟和所有单步从时钟图C.2所示为时钟集,但在该图中,给出了不对称校正。 GB/T25931—2010/IEC61588120091i;”!“timc”Tm+”l。。”3nS:limeTm”。。。im兰譬*’25黧2ns±H*=MH钟⋯Tocl∽kId%tIh:0XIACDE48234587IABCDcMckldcmit!-oxlacoe蛐234s6"1IEDABclockldemllx.0XIACDE48234目57[FACEH鬯s、ncwOSILP=nLSel仝、2s、acTWOSTEpF&一】△3l。。rrectionField(ns)l0.3&l:。u科凡nIdcnnnDqDq【&scquc.ccld』235卜舞淼斋△、I。“ginTlmest“p}1“LJAk##H目:055ns0B0+(005)传输H目:、*犄H目。O50“52。7。+(020)。rDela、Reqb八y(ns)卜fqc)r。/\nF]cld。,h02,02I会icorrccnonFle;d(Ⅱs)l23765squcnccTdl。37曙塞scqucnccJd1037川”*糖H目:565n(Os婴060鬻05)△惦川。Ⅷn7一⋯m6l。“144酬△#辅H目:090“82。70(02)”I。。,。一。|△Nmh_Re目匿登。qucnccIds。⋯PonIdcntl“bqlABcDUI—YmsI⋯q【⋯I1448H卜\s"=q⋯cldl1∞7l一、№m”十(sm}I144:864△l”q“。⋯g““。6。⋯‘、b、}lkACEq“l。Ⅵu⋯tingPrddemn[0、I/FaCEqh)△r∥V硷、o‰tfrom⋯⋯14424105144.7-13m07%_02)一4252图c.2带不对称校正的主时钟、端到端时钟和单步从时钟在表c.2中给出对图c.2中关键值的解释。表C.2图C.2关键值的解释关键值参考条款注释9593和时间戳和correctionField的和是tl11.3211.5.2l和b驻留时间(2074)和进人路径不对称(o.05)已经加到correctl。nFleld11.6.211.32时间戳设置为0或离开时间戳的估计(144:300)。correctl。nFleld见“i”注意requestmgPonIdenⅢy和sequenceld是从时钟的对应字段。receiveTimestamp是不d11.32包含纳秒小数部分的ta。correctionField是减去t。的纳秒小数部分(085)的DelayReq报文的correctlonFleld第一项是差值(tzt。)。第二项是接收和源时间戳的差值。最后两个项是在⋯g’中解释11.32的校正过的correctionField。注意:计算的meanPathDelay与图中实际假设的路径延时平均值相当按顺序的项是t2、originTimestamp、meanPathDelay和Syncc。rrectIonFleld(按⋯g中的解f112释进行修改)。注意:由于不对称校正的应用,计算的偏移十分接近假设值在Sync报文的correctionField被用于任何计算之前,将接收Sync报文的端口路径的进g116.2入不对称(一0.20)加到correctl。nHeld中。因此,加人到Sync报文的c。rrectlonFleld(207.75)的该项(一020)在两个计算中出现传输时间不对称按7.4.2中的定义模型化。因此,在主时钟和透明时钟之间的路径,平均传输时间是0.60ns。主时钟到从时钟的方向,实际传输时间是065ns--060+(O.05),表h742示准确不对称值是0.05。与其他路径相比,主一从方向较短(0.7与09相比),产生负不对称值(0.2) GB/T25931--2010/IEC61588:2009表C.2(续)关键值参考条款注释1163离开路径不对称值(一o.2)已从correctLonFleld减去11.6.3和透明时钟将原始correctionField值(0.2)加上驻留时间(2375),并减去离开路径不对称1153.2值(0.05),即02+23750.05—23765C.2.3给出驻留时间和不对称计算的双步主时钟、端到端透明时钟和单步从时钟图C.3所示为双步主时钟与单步端到端透明时钟和从时钟之间的相互作用。比较图C.3和图C.2中Sync报文和Follow—Up报文的内容,以及meanPathDelay和offsetFromMaster的计算,可知使用Follow—Up报文的影响。普aⅫ,H钟±"*[imc=T”clockIdcnt[n-0xACDE48234567】ABCD目N#}步《日目*“mcTm+1003nScl。ckldcntib:0XACDE48234567lEDAB4#$女目*从"*tI眦=Tm+25ZnSclockldcnhn:{JxJACDE48334567FACE△。‰一from⋯=144’2410fi_144713(2074542)O3=252⋯aI252图c.3带不对称校正的双步主站、端到端透明时钟和单步从时钟在表C.3中给出对图C.3关键值的解释。 GB/T25931—2010/IEC6158812009表C.3图C.3关键值的解释关键值参考条款注释9.5.94和OriginTimestamp是tl的估计(144:o),correctionFidd为011.32115.2.1和b驻留时间(2074)和进入路径不对称值(0.05)已经加到correctl。nFIeld11.621132时间戳设置为0或离开时间戳的估计(144:300)。correctlonHeld见“i”注意:requestl“gP。rtIdentity和sequenceld是从时钟的对应字段。recelveTlmestamp是不d1132包含纳秒小数部分的ta。correctionField是减去t。的纳秒小数部分(O.85)的DelayReq报文的correctionField第一项是差值(如t。)。第二项是接收时间戳和preeiseOrigin时间戳的差值。最后三项11.32是按⋯g中解释进行修改的Sync报文的correctionField,以及Follow—Up和Delay—Resp报文的eorrectionField。注意:计算的meanPathDelay与图中实际假设的平均路径延时相当按顺序的项是t2、preclseorl91nTlmestamp、meanPathDelay、SynccorrectionField(根据“g”f112中解释进行修改)和Follow_UpcorrectionField。注意:由于不对称校正的应用,计算的偏移十分接近假设值在Sync报文中的correctionField用于任何计算前,将接收Sync报文的端口路径的进入g1l62不对称值(一020)加到Sync报文的correctionFleld中。因此,加到Sync报文中c。rrectIonFleld(20745)的该项(020)出现在两个计算中传输时间不对称按74.2中的定义模型化。因此,在主时钟和透明时钟之间的路径,平均传输时间是060ns。主时钟到从时钟的方向,实际传输时间是065YlSm060+(O05),表h742示准确不对称值是005。与其他路径相比,主从方向路径较短(0.7与0.9相比),产生负不对称值(o2)1163离开路径不对称值(一o.2)已经从correcnonFIeld减去了1I63和透明时钟将源correctionField值(O.2)加上驻留时间(2375),并减去离开路径不对称值J11.532(005),即02+2375—0.05—23765k11.52lFollow—Up没有校正g510correefionFidd和preciseOriglnTimestamp的和是离开时间h9510Sequenceld和sourcePortIdentl‘y字段与Sync报文的这些对应字段相当c.2.4给出驻留时间和不对称计算的主时钟、端到端透明双步时钟和单步从时钟图c.4所示为一个双步主时钟与一个端到端透明双步时钟和一个单步从时钟之间的相互作用。比较图C.4、图C.3和图c.2中Sync报文和Follow—Up报文的内容,以及meanPathDelay与offset—FromMaster的计算,可知使用Follow—Up报文的影响。163 GB/T25931~2010/IEC61588:2009普通Ⅸ女目*±"*time-TmcloA【d∞tm-0xIACDE48234567]ABCD%oⅣm*c-双Tm步+《10日03目a*Scl。ckldcntit!:nx『ACDE482345671EDABM"钟tlme=Tm+252nS边*}’目*clock[d|cfInty:OXIACDE48234567JFACE.△‘,№“fmmma5kr=1“24105144713【0—02)20775-252⋯m252图C.4带不对称校正的主时钟、端到端透明双步时钟和单步从时钟在表C.4中给出对图c.4关键值的解释。表c.4图c.4关键值的解释关键值参考条款注释95.9.4和1132originTimestamp是r1的估计值(144:o),correctionField为0115.2.2和b在FollowUp报文中实现驻留时间(207.4)和进入路径不对称(O.05)的校正,见⋯k’11621132时间戳设置为0或离开时间戳的估计(144:300)。eorreetionField见⋯i注意:reqⅢtlngPortldenmy和sequenceld是从时钟的对应字段。reeeiveTimestamp是不d1132包含纳秒小数部分的t4。correctionField等于Delay—Req报文的eorreetionField(02)减去t。的小数纳秒部分(o85)第一项是差值(t。一t。)。第二项是接收时间戳和preciseOrigin时间戳的差值。最后三项1132是按⋯g’的解释已修改的Sync报文的correctionField,以及FollowUp和Delay—Resp报文各自的eorrectionField。注意:计算的meanPathDelay与图中实际假设的平均路径延时相当按顺序的项是t2、preciseOriginTimestamp、meanPathDelay、Sync报文的eorrectionFieldf112(按⋯g’解释已修改)和Follow—Up报文的correctionField。注意:由于不对称校正的应用,计算的偏移十分接近假设值在Sync报文的correctionField用到任何汁算之前,将接收Syne的端121的进人路径不对g1162称(020)加到Sync报文的correctionField。因此,加入到Sync报文的correctionField(0o)的该项(一020)出现在两个计算中 表C.4(续)GB/T25931—2010/IEC6158812009关键值参考条款注释传输时间不对称按7.4.2的定义模型化。因此,在主时钟和透明时钟之间的路径,平均传输时间是o60as。主时钟到从时钟的方向,实际传输时间是065ns=060+(o.05),表示h74.2准确不对称值是0.05。与其他路径相比,主一从方向较短(0.7与0,9相比),产生负不对称值(一02)1163离开路径不对称值(02)已从c。rrectl。nFleld减去1163和J不对Delay—Req报文进行校正。驻留时间和离开不对称校正见⋯P’11.5.3.31l522和将驻留时间(207.4)和进入路径不对称(O.05)校正加到FollowUp报文的correctionFieldk11.6.2(03)9.5.10correctlonFleld和preciseOriginTimestamp的和是离开时间tl9510Sequenceld和s。urceP。rtIdentl‘y字段与Sync报文的对应字段相当116.3和透明时钟将DelayResp的初始correctionField值(0.65)加上相关Delay—Req报文的1153(237.5)的驻留时间,并减去离开路径不对称(O.05),即一065--2375005—2368C.2.5给出驻留时间和不对称计算的单步主时钟、端到端透明双步时钟和单步从时钟图C.5所示为一个单步主时钟与一个双步端到端透明时钟和一个单步从时钟之间的相互作用。比较图C.5、图C.4、图C.3和图c.2中Sync报文和Follow_Up报文的内容,以及meanPathDel8y和offsetFromMaster的计算,可知使用Follow—Up报文的影响。普m单步H*{H*:time=TmclockldentiV,:0X【ACDE48234567JABCD?黧鬻1鬻1黧⋯;m十~Jn3cJocud∞tIH:0x[AcDE48234567]EDABn"钟time=Tm+257nSm#4$目*cl∞kldentlty·OX【ACDE482345671FACEI“mTwomFALSEI.d&s⋯一;tml△l⋯u0“*Ⅶm)l0.3I一¨0⋯Film㈣l0.3I△【q⋯『d嚆l2%l隹Ⅲdd斗l2l爿5I“m一“_I1“4l,‰h卜I。“B⋯㈣I144:7Ah*-H目.o65ns060-Ho%)jVyFollo*Upl△p∞∞”口㈣1H4刊fh、ym㈨qDclmam】△I⋯㈣OB¨m,l±坚苎2_△【⋯㈣mm)j02L叭l~Ⅷdm口州IFACE。|Sl一~n】☆mlhlh_j]FACE5llⅫ⋯1d1037s目吣Kcldll∞7Al。“目删岫““p娜1Ioo由443“I盘卅t3Dela)一Req、Im,@*L△N]‰Ⅱql⋯IonF∞jd(m】065也竺坐生坐生一_—兰!U△巨竺竺型塑竖—]坠坐竺回"”c【dl1037~l、@⋯nⅢsmj1448H△oMI“业10}勇7/I"⋯m㈣I、l㈧"cE:}h△l一¨№¨⋯p5m1144:864啦bRespI|eq嶙ul_gP。n】∞nunl叫IFACE5Ihegmssr7Ar△om“mmaⅢI“-24105_144713(o302)20745⋯252acmI252图c.5带不对称校正的单步主时钟、双步端到端透明时钟和单步从时钟在表C.5中给出对图C.5关键值的解释。 GB/T25931—2010/IEC61588:2009表C5图C.5关键值的解释关键值参考条款注释9.5.9.3和时间戳和correctl。nFleld的和是t1113211522和b在Follow—Up报文中实现驻留时间(207.4)和进入路径不对称值(o.05)的校正,见⋯k’11.6.21132时间戳设置为0或离开时间戳的估计(144:300)。correctlonFleld见⋯i’注意:requestlngPonIdcntlty和sequenceld是从时钟的对应字段。receiveTimestamp是不d1l32包含纳秒小数部分的£a。correctionField是Delay—Req报文(O.2)的减去t。的纳秒小数部分(0.85)的correctionField第一项是差值(屯ts)。第二项是接收时间戳和preciseOrigln时间戳的差值。最后三项是按⋯g中解释已修改的Sync报文校正的eorrectionField,以及FollowUp和Delay—Resp1132报文各自的correctionField。注意:计算的meanPathDelay与图中实际假设的平均路径延时匹配按顺序的项是t2、preciseorigin’I、imestamp、meanPathDelay、Sync报文的correctionFieldf11.2(按⋯g懈释已修改)和Follow—Up报文的correctionField。注意:由于不对称值校正的应用,计算的偏移十分接近假设值在Sync报文的correctionField用到任何计算之前,将接收Sync报文的端口的进入路径g1l_62不对称(020)加到Sync报文的correctionField。因此,加入到Sync报文的correctionField的该项(~0.20)出现了在两个计算中传输时间不对称按7.42的定义模型化。因此,对于主时钟和透明时钟之间的路径,平均传输时间是060ns。在主时钟到从时钟的方向,实际传输时间是065ns--060+(005),h7.42表示校正的不对称值是005。与其他路径相比,主一从方向路径较短(07与09相比),产生负不对称值(一0.2)】l63离开路径不对称值(一0.2)已从c。rrectlonFleld减去1163和II53对I)elay_Req报文不进行校正。驻留时间和进入不对称值的校正见⋯P’11522和将驻留时间(2074)加入到correctionField.随后进入路径不对称(o05)校正加到Follow—k\116.2Up报文的correctionField将Sync报文的originTimestamp复制到preeiseOriginTimestamp。将Sync报文的doma—1l52inNumber(图中未给出)、s。urcePortIdentlty和sequenceld字段复制到FollowUp报文的对应字段115.2.2twoStepFlag设置为TRUE116.3和透明时钟将Delay—Req报文的初始correctionField值(一0.65)加上相关DelayResp报文p1153.3的驻留时间(2375),并减去离开路径不对称值(005),即o65+237.5005—236.8C.3使用对等延时机制的计算C.3.1给出驻留时间和不对称计算的单步对等请求方时钟、端到端透明时钟和对等响应方时钟图C.6所示为一个单步对等请求方时钟与一个单步端到端透明时钟和对等响应方时钟之间的相互作用。166 劂篇嬲:。⋯:。。,,。GB/T25931--2010/IEC61588:2009怒磐:篙嚣*$H钟n。e“Tm”,.25”2nScIockldcml“:0XFACDE48234487]EDABclock】dcntm·0X{ACDE4日234067]FACEHI⋯∞⋯fmli(o2)oo【z△B?{j&隹一~nlm⋯、l“【j《曙”q—c1410』seque啮ldI1037&&』IongmTi㈣lo。o自㈣l卅,l幡_"Ⅷ:09。m;0T0印”/*#目月:1‰ReqTWOSTLpFALSE|△N1rmmRcmtWOSTEP⋯zl△巨—hnl*Jnlnila擎c。dl⋯emnlmmlHhNl^BcoⅢl㈣“1037卜\l⋯R¨’“l⋯】m¨mlo‘4Pdela、如口1≈∞自sra1w⋯一“】,~¨、mlo【pdela、RcspIc"“g~n1☆一jN*ACE5lhI⋯li“gPonl4e¨libh『]FACE5Ihcgmss=*#H目:。‰。7。+(。2L—一么b144舯01yI/△~一palIlJclax[(144:63385_“∞2)6∞05]/2=I32[o5Ⅶ9__065十055]/2图c.6带不对称校正的单步对等响应方时钟、端到端透明时钟和对等请求方时钟在表C.6中给出图C.6关键值的解释。表C.6图C.6关键值的解释关键值参考条款注释1l43originTimestamp是0或者离开时间戳t1的估计1l43和bcorrectionField等于0一(0.2)一0.2,(0.2)是离开路径的不对称值11.6411.5.42和通过在端到端透明时钟中加上驻留时间,并减去离开路径不对称值来修改correetionField。11.6.402+237.5(O.05)一237.65requestReceiptTimestamp一0。将Pdelay—Req报文的sourceP。九Identlty和sequenceld字d114.3段复制到reque5tlngPortldennty和sequenceld字段——correctionField等于PdelayReq报文的correctionField和周转时间(t一~t2)的和,即237.65+e114.3(】44:4001144;238.95)一3988011542和通过在初始correctionField上加上驻留时间2074和进入不对称005来修改f11.6.5correctlonFleld。39880+207.4+005—60625·】14.3和在计算meanPathDelay之前,通过加上进入不对称02来校正PdelayResp报文的cor—grectionField。即60625+(一02)=606.05。meanPathl)elay一[(t4一t1)Pdelay—Resp116.5的correctl。nFleId]/2一[(144:63385—144:252)一606.05]/2=13C.3.2给出驻留时间和不对称计算的单步对等请求方时钟、双步端到端透明时钟和单步对等响应方时钟图c.7所示为一个单步对等请求方时钟与双步端到端透明时钟和单步对等响应方时钟相互作用。 GB/T25931—2010/IEC61588:2009*通}女R*自&目钟Iimc=Tmc10ckldentim:0xIAcDE418234567】ARCD:裟鬈黧”3nScloAIdenrIn0XIACI)E48234567]EDAB镕m目*ⅢncTm+252nSn#},目*clockldcntiU。OXIACDE48234567】FACE△mm』m一“I”[(㈤63385]442521_∞o}0sl35—02)4449】/z"13【o5+09+066+055]/2图c.7带不对称校正的单步对等响应方时钟、双步端到端透明时钟和单步对等请求方时钟在表C.7中给出图c.7关键值的解释。表C.7图C.7关键值的解释关键值参考条款注释11.4.3OriginTimestamp是0或者离开时间戳t】的估计11.4.3和hcorrectionField等于。一(--0.2)一0.2,(一o.2)是离开路径的不对称11.6.4115.4.2和1164不修改correctionField。对PdelayReq的驻留时间和进人路径不对称的校正见“J”requestReceiptTimestamp一0。将Pdelay_Req报文的s。urcePortldent“y和sequenceld字d11.4.3段复制到requestlngP。rtIdennty和sequenceld字段correctionFieid是Pdelay—Req报文的correctiortFidd与周转时间(如一如)的和,即0.2+1143(144:4001144:238.95)一161.35115.4.3和除设为TRUE的twoStepFlag以外,不修改PdelayResp的PTP字段,将其设置为f1165TRUE。Pdelay—Resp报文的驻留时间和进入路径不对称的校正见“i."在计算meanPathDelay之前,通过加上进入不对称0.2来修改Pdelay—Resp报文的COl"一11.4.3和reetionField。即161.35+(0.2)一16105。meanPathDelay一[(t4一t1)(responseOrig—ginTimestamp--requestReceiptTimestamp)一PdelayResp报文的eorrectionField~Pdelay—11.65Resp—Follow—Up报文的Pdelay—Resp]/2=[(144:633.85144:25.2)(0—0)一(t61.3502)一44490]/2—1.3将PdelayResp报文的soureePortIdentity、sequenceld和r。questlngPortldentlly字段复制h11.543到PdelayResp—Follow—Up报文的对应字段。TWOSTEP标志设置为TRUE。responseOriginTimestamp设置为011543.1l64correcfionField等于Pdelay_Req与Pdelay_Resp报文驻留时间的和,减去Pdelay—Req的离开不对称值,加上PdelayResp报文的进入不对称值,即237.5+2074一(0.05)+和1165(005)=44490‘ GB/T25931—2010/IEC61588:2009C.3.3给出驻留时间和不对称计算的单步对等请求方时钟、双步端到端透明时钟、双步对等响应方时钟——选项1图C.8所示为一个单步对等请求方时钟与双步端到端透明时钟和双步对等响应方时钟之间相互作用。双步响应方时钟用11.4.3的第一个选项生成Pdelay—Resp和Pdelay—Resp—Follow—Up报文。*n日#目*自&目”:tameTmclockldentit3-0XlACDE48234567lABCD目lg端双步t日目*n—Tm+1。03nScloclddcntity.OXIACDE482345671EDAB*$H*time-Tm+252nS边*々女"*el。ckl4cnlity-0X[ACDE48234567IFACE△⋯pm“≈=[n“:633851442s2)一(0—}o(6062¨(_02))]/2—13【。5+09+055+05s]/a图C.8带不对称校正的双步对等响应方时钟、双步端到端透明时钟和单步对等请求方时钟:选项1表c.8中给出图C.8关键值的解释。表C.8图C.8关键值的解释关键值参考条款注释11.4.3originTimestamp是0或者离开时间戳t1的估计1l_43和bcorrectionField为0一(~02)一02,其中(02)是离开路径的不对称11.6.4115.4.2和11.6.4不修改correctionField。Pdelay_Req的驻留时间和离开路径不对称的校正见⋯mrequestReceiptTimestamp=0。将Pdelay_Req报文的sourcePortIdentlty和sequenceId字d11.43段复制到requestl“gP。rtIdentl‘y和sequenceld宇段114.3eorrectionField设置为011.5.4.3和不修改Pdday_Resp的PTP字段。Pdelay—Resp报文的驻留时间和进入路径不对称的校fli.6.5正见“m”在计算meanPathDelay之前,通过加上进入不对称0.2来修改Pdelay—Resp报文的cot—1143和rectionField。即60625+(一02)一60605。meanPathDelay=[(“一t1)一(responseOrigginTimestamprequestReceiptTimestamp)一Pdelay—Resp报文的correctIonFleld—Pdelay—11.6.5RespFollow_Up报文的correctlonFleld]/2=[(144:633.85—144:252)一(0—0)0606os]/e一1.3将Pdelay—Resp报文的sourcePortIdentity、sequenceld和requestingPortIdentlty字段复制h11543到Pdelay_Resp_FollowUp报文的对应字段。TWOSTEP标志设置为TRUE。responseOriginTimestamp设置为0 GB/T25931—2010/IEC61588:2009表C.8(续)关键值参考条款注释11.54s.11.64CorrectionField是Pdelay_Req报文的correctionFidd和周转时间的和,即(t3一t2).0.2-gk和1165(144t400l一144:238.95)=161.3511.543.11.6.4correctionField等于初始correctionField与Pdday_Req和PdelayResp报文驻留时间的和,减去Pdelay_Req离开不对称值,加上Pdelay—Resp报文进入不对称值,即16135+2375+和11652074(0.05)+0.05—60625c.3.4给出驻留时间和不对称计算的单步对等请求方时钟、双步端到端透明时钟和双步对等响应方时钟——选项2图C.9所示为一个单步对等请求方时钟与双步端到端透明时钟和双步对等响应方时钟的相互作用。双步响应时钟使用11.4.3的第2个选项生成Pdelay_Resp和Pdelay—Resp—Follow—Up报文。;菇盟一⋯,mTimme=一Tin+m1N}一,3nS。。。e—Tm”+25—2nS妇呲“‘1n:OXlACDE¨2345671^BcDcI诎【m舭:0xlACDE48234.§57】ED^Bcjo“ld∞虮州ACDE482=j4567JFACE△Ⅲ口一Pm』eI"[(144:63385144±52)(144:40014Ⅷ381_(⋯95⋯20)“52]/a一13【o5+119+065+0ss]/a图C.9带不对称校正的双步对等响应方时钟、双步端到端透明时钟和单步对等请求方时钟:选项2在表C.9中给出图C.9关键值的解释。表C.9图C.9关键值的解释关键值参考条款注释114.3originTimestamp是0或者离开时间戳t.的估计114.3和bcorrectlonField是0一(一0.2)一0.2,其中(一02)是离开路径的不对称11.6.411.4.3,115.4.3和11.64不修改Pdelay—Req报文的correctionField将Pdelay_Req报文的sourcePortIdentl‘y和sequeneeld字段复制到requestingPortIdentltyd114.3和sequeneeld字段。TWO—STEP标志设置为TRUE114.3correctlonFleld为0减去t2的纳秒小数部分,即0095—095114.3、11.543fRequestReceiptTimestamp设置为t2的秒和纳秒部分,144:238和116.5 表C.9(续)GB/T25931--2010/IEC6158812009关键值参考条款注释在计算meanPathDelay之前,通过加上进入不对称值o2来修改Pdelay_Resp报文的cot1l43和rectionField。即一(095)+(一02)一一115。meanPathDelay一[(t4一t1)一(response—gOriginTimestamprequestReceiptTimestamp)一Pdelay—Resp报文的correctionField116.5Pdelay_Resp_Follow_Up报文的corroctionField]/2一[(144:633.85144:252)(144:400144:238)一(一0.95+(一0.20))一(4452)1/2=13将Pdelay_Resp报文的s。urcePortldenmy、sequeneeId和requestlngPortIdentl‘y字段复制h1143到Pdelay_Resp—FollowUp报文的相同字段。TWOSTEP标志设置为TRUE1143和correctionField设置为PdelayReq报文的corremionField与t3的小数纳秒部分的和,即k11.6.502+01—03correctionField等于初始correctionField与PdelayReq和Pdelay_Resp报文驻留时间的和,减11543.116.4去Pdelay_Req离开不对称,加上Pdelay—Resp报文进入不对称,即03+2375+207.4和11.6.5(005)+0.05—445.2p11.43responseOfignTimestamp设置为t3的秒和纳秒部分,144:400C.3.5显示驻留时间和不对称计算的单步对等请求方时钟、单步端到端透明时钟和双步对等响应方时钟——选项2图c.10所示为一个单步对等请求方时钟与单步端到端透明时钟和双步对等响应方时钟之间相互作用。双步响应方时钟使用11.4.3第二个选项生成Pdelay_Resp和Pdelay_Resp—Follow—Up报文。*a口女H*自&目*帅o=1”clock№nI】h:OXIACDE482345671ABCD《_r自im《c=4l"a女+t10目OH.3a*Si1cloc.k[dcnti“·OX[ACDE482345671EDABa#单步目*镕$H*timeTm+252nScIockIdentit、:OX【ACDE482M.567lFACE△me“ⅢhdcimL(14463385144252)(1㈨400Ⅷ14438)(2065+(_02”(2a77s)]/2—13一fo5+09+065+0551A图c.10带不对称校正的双步对等响应方时钟、单步端到端透明时钟和单步对等请求方时钟:选项2在表c.10中给出图C.10关键值的解释。 GB/T25931—2010/IEC61588:2009表C.10图C.10关键值的解释关键值参考条款注释1143originTimestamp为0或者离开时间戳t1的估计11.43和bcorrectionField等于。一(0.2)一0.2,其中(0.2)是离开路径的不对称值11.6.411542和correetionField等于Pdelay_Req报文的初始correctionField和驻留时间的和,减去离开路11.6.4径不对称,即0.2+2375~0.05=23765将Pdelay_Req报文的s。urcePortIdentity和sequenceId字段复制到requestlngPortldentI‘yd1143和sequeneeId字段。TWO—STEP标志设置为TRUE11.4.3eorreetionField设置为0减去t2纳秒的小数部分,一一0.95115.4.2和correctionField是Pdelay_Resp报文的初始correctionField与驻留时间的和,加上Pdelay~f11.6.5Resp报文的进人不对称。一0.95+207.4+(0.05)一206.5在计算meanPathDelay之前,通过加上进入不对称一o.2来修改Pdelay_Resp报文的cot.114.3和rectionField。即206.5+(一0.2)=206.3。meanPathDelay一[(t4一t1)(responseOrigin~gTimestamprequestRecelptTimestamp)一Pdelay—Resp报文的correctibnFie|d—PdeJay~1L.65Resp_Follow_Up报文的correcti。nField]/2一[(144:633.85—144:25.2)一(144:400144:238)(206.5+(一02))一(237.76)1/2=1.3将Pdelay_Resp报文的sourcePortIdentlty,sequenceId和requestingPortIdentl‘y字段复制h11.43到Pdelay_Resp_Follow_Up报文的相同字段。TWOSTEP标志设置为TRUE11.43和correctionField设置为Pdelay_Req报文的correctionField与t3的纳秒小数部分的和,即k11.6.5237.65+01—237.7511.4.3responseOriginTimestamp设置为t3的秒和纳秒部分,144:40011.4.3和requestReceiptTimestamp设置为t2的秒和纳秒部分,144:23811.6.6C.3.6给出从主时钟到从时钟传输时间的单步对等主时钟、双步点到点透明时钟和单步对等从时钟图C.11所示为一个单步对等主时钟与双步点到点透明时钟和单步对等从时钟之间相互作用,以及由主时钟到从时钟的传输时间。 普Ⅲ单步目*cI。ckTdentl“:OXlACDE48234567】ABCD%目端双步遗日目*GB/T25931—2010/IEC61588:2009。。。。兰嚣裂鬈cl∽川cnlln·0x『^cDE4823456TIEDABcI。ck胁nⅡh;oxIACDE蚰234№7】FACEsvw-wo一⋯FALl△I$mTwQs㈣LsEI△I一㈣cld|Ⅲ)lool:篙:慧’H1”lAB。。jl⋯mmmm]ABCD】|IⅢ“”l235Al。“目”“。”“⋯pB“’l144:7卜[ongi⋯9吲1“:7h*%W目065ns-060+(005】*#日f荷:\NryI∞Ⅱ∞“oⅡ”H(∞)J∞Bmt⋯№nI目Yl州]ABOD4『seq—ldI∞5△”q⋯目“‘””“p‘5”’1⋯lh△—path—dctay一060△me∞m“1*:owA"xy△』全.o脚th伽_m瓣一“:24105-144ff⋯070(o3+-o20)F2衄05⋯252act∞1252图C.11带时间计算的单步对等主时钟、双步点到点透明时钟和单步对等从时钟在表c.11给出图c.11关键值的解释。表c.11图c.11关键值的解释关键值参考条款注释originTimestamp是离开时间戳tl的秒和纳秒部分。originTimestamp和correctionField95.93的和是tt的精确值b11.4.3使用对等延时机制的两个链路的meanPathDelay值分别确定为0.60和0.701l_52在发送Sync报文之前,TWO—STEP标志设置为TRUE将Sync报文的sourcePortIdentily和sequenceId字段复制到sourcePortld曲tl‘y和1152.2.sequenceld字段。PreciseOriginTimestamp字段设置为originTimestamp字段的值。首先将d11.451correctionField设置为Sync报文的驻留时间207.4,然后通过在Sync进人端口路径加上和1162meanPathDelay来对该值进行校正,即207.4+0.6。最后,通过加入Sync进入端口路径不对称对该结果进一步校正,即2074--0.6+O.05—208.05offsetFromMaster—t2一preciseOriginTimestamp进入链路的meanPathDelay--Sync报文11.2的correctionFieldFollow—Up报文的correctionField。O{fsetFromMaster=144:24l_05—144:7—070一(0.3+(一0.20))一208.05—25.2在将correctionField用于任何计算“e”(03+(一020)一0.1)之前,通过加上进入路径不{1l62对称来修改接收到Sync报文的correctionField GB/T25931—2010/IEC61588:2009D.1概述附录D(规范性附录)PTP在IPV4用户数据包协议上的传输本附录规定了在用户数据报协议(UDP,见1ETFRFC768(1980)[B5])和因特网协议版本4(1Pv4,见IETFRFC791(1981)[B6])上传输报文的特定实现的PTP标准部分。本附录规范应适用于所有使用uDP/IPv4作为通信服务的PTP实现。PTP报文的第一个八位位组应紧跟UDP报文头的最后一个八位位组。发送或中间节点可将UDP校验和设为0。当通过单播发送使用该传输时,透明时钟对PTP事件数据包的修改,可使不正确使用PTP目的端口的应用出错。注:下面的UDP目的端13是为PTP分配的保留值,且不应发生冲突。然而众所周知,一些应用忽略这些分配。正是这些应用易受透明时钟行为的影响。D.2UDP端口号事件报文的UDP目的端口应为319”。多播通用报文的UDP目的端口应为320。对一个时钟寻址的单播通用报文的UDP目的端口应为320。对一个管理者寻址的单播通用报文的UDP目的端口应为PTP响应报文的UDP源端口值。D.3IPv4多播地址PTP报文应使用表D.1规定的多播报文。表D.1IPv4多播地址IANA分配的名称”报文类型地址PTPprimary除对等延时机制报文外的所有报文224.0.1.129PTP—pdelay对等延时机制报文2240.0.107对于发送到PTP—pdelay地址的报文,存活时间(TTL)字段应设为1。D.4transportSpecific字段值transportSpecific字段(见13.3.2.1)应按表D.2的规定进行解释。7)因特网编码管理局(IANA)为PTP分配的专用端口号;见http://www.iana.org/assignments/portnumbers.8)因特网编码管理局(1ANA)分配的专用多播地址,连同PTP一起的IANA名称,这些名称出现在IANA列表中表示多播地址和名称。174 GB/T25931—2010/IEC61588:2009表D.2transportSpecific宇段值比特名称含义版本l的一些硬件实现.在检查时间戳合格之前要辅助时间戳校验输入数据包的长度,并且要求PTP事件报文的UDP有效载荷长度至少为124个八位位组。注意,使用这样的硬件时,应将从该节点发送的所有Announce报文和PTP事件报文中的比特0设为⋯1。接收任何比特0为⋯1’的PTPAnnounce报文或事件报文的接收方,应对发送给该接收节点的所有PTP事件报文的UDP有效载荷进行扩展,使得UDP有效载荷长度等于OhardwareCompatibility124个八位位组。填充的八位位组所有比特应为0。此填充应附加到所有发送给该接收节点的PTP事件报文,并且自该节点最后接收到的比特0为⋯1’的PTPAnnounce报文或事件报文时间开始,此填充要持续portDS.announceReceiptTimeout秒的时间。填充应不考虑PTP事件报文使用多播还是单播模式传输。如果发送方未请求进行填充,则该比特应以0进行发送。除了要求向后兼容一些版本1的硬件外,节点应忽略填充的八位位组。见注l~3保留该比特以0进行发送,并被接收方忽略注:本规范可使节点不要求对正在接收的已填充的事件报文进行填充。D.5可选值对于PTP事件报文,服务类型(ToS)字段中区分服务(Ds)字段的值应被设为可用的最高流量类选择器代码点。注:当第二层传输机制允许多优先级时,推荐事件报文使用最高优先级。D.6IPv4选项不应使用IPv4选项。D.7协议地址当networkProtocol成员值是IJI)P/IPv4(见7.4.1),对数据类型PortAddress的任意参量(见5.3.6):——addrejsI。ength成员值应为4。——addressFieId成员值应是用4组2个十六进制数字表示的端口的IPv4地址。例如,用通常文本符号中表示的lPv4地址207.142.131.235,显示为八位位组数组CFgE83EB。 GB/T25931—2010/IEC61588:2009E.1概述附录E(规范性附录)PTP在tPv6用户数据协议(UDP)上的传输本附录规定了在用户数据报协议(UDP,见IETFRFC768(1980)[B5])和因特网协议版本6(1Pv6,见IETFRFC2460(1998)[B12])上传输报文的特定实现的PTP标准部分。本附录规范应适用于所有使用UDP/IPv6作为通信服务的PTP实现。PTP报文的第一个八位位组应紧跟UDP报文头的最后一个八位位组。发送节点应扩展所有PTP报文的UDP有效载荷,通过在PTP报文末端增加两个八位位组实现。UDP校验和字段的内容或UDP有效载荷的最后两个八位位组,可通过发起方或一个中间节点来修改,以确保对PTP字段的任何修改都可保持UDP校验和不被损坏。更新UDP校验和的修改可通过使用IETFRFC1624(1994)[B9]定义的机制来实现。除了用于计算UDP校验和外,接收方应忽略PTP字段末尾多出的UDP字段内容。E.2UDP端口号事件报文的UDP目的端口值应为319”。多播通用报文的UDP目的端口值应为320。对一个时钟寻址的单播通用报文的UDP目的端口值应为320。对一个管理者寻址的单播通用报文的UDP目的端口值应为PTP响应报文的UDP源端口值。E.3IPv6多播地址Ipv6多播地址见表E.1。表E.1IPv6多播地址IANA分配的名称报文类型地址(十六进制)PTPprimary除对等延时机制报文外的所有报文FFOX:0:0:0:0:0:0:181,见注PTPpdelay对等延时机制报文FF02:0:0:0:0:0:0:6B注:在PTPprimary地址中,“x”的十六进制值在IETFRFC4291(2006)[B14]中有如下定义:o保留】接口本地范围2链路本地范围3保留4管理本地范围5站点本地范围6(未分配)7(未分配)8组织本地范围9(未分配)A(未分配)B(未分配)C(未分配)I)(未分配)E全球范围F保留9)因特网编码管理局(]ANA)为PTP分配的专用端口号;见http://www.ianaorg/assignments/port—numbers GB/T25931--2010/iEc61588:2009对于发送到PTPpdelay地址的报文,HopLimit(HI。)字段应设为1。E.4transportSpecific字段值transportspecific字段的所有比特值(见13.3.2.1)rg设为0传输,且应被接收方忽略。E.5可选值对于PTP事件报文,流量类(Tc)字段中区分服务(Ds)字段的值应被设为可用的最高流量类选择器代码点。注l:当第二层传输机制允许多优先级时,事件报文应使用最高优先级。注2:IPv6扩展报文头的使用超出本标准的范围。E.6协议地址当networkProtocol成员值为UDP/IPv6(见7.4.1),对数据类型PortAddress的任意参量(见5.3.6):——addressLength成员值应为16。——addressField成员值应是用16组两个十六进制数字表示的端口的IPv6地址。例如,按照IETFRFC4291(2006)EBl4],用通常文本符号表示的IPv6地址2001:0DB8:85A3:08D3:1332:8A2E:0270:7225显示为八位位组数组20010DB885A308D313328A2E02707225。177 GB/T25931—2010/IEC61588:2009F.1概述附录F(规范性附录)PTP在IEEE802.3/Ethernet上的传输本附录规定了在以太网帧上直接传输报文(见IEEEStd802.3:2005)的特定实现的PTP标准部分。PTP报文的第一个八位位组应占用客户机数据字段的第一个八位位组。F.2Ethertype本附录规范应适用于直接使用Ethertype为88F7,。的以太网格式数据包进行通信服务的所有PTP实现。F.3多播MAC地址缺省地,PTP报文应使用表F.1规定的MAC地址。表F.1多播MAC地址报文类型地址(十六进制)f除对等延时机制报文外的所有报文01—1昏19—00—00—00l对等延时机制报文01-80一C2—00—00—0E001BI9的OUI值表示由IEEE/RAC分配给本标准的值。01—1B190000—00的MAC地址值表示在地址空间内从多播地址池中获得的一个多播地址。01—80一C2—00—00—0E的MAC地址表示从IEEEStd802.1AB管理的多播地址池中获得的一个多播地址。然而,如果在PTP行规中定义了这样的应用,则允许将地址01—1B一19—00—0000或地址0180C20000—0E用于所有PTP报文。为确保对由于(快速/多)生成树协议而被阻塞(blocked)的端口进行对等延时测量,保留地址01—80—C2000E应被用作PTP对等延时机制报文的目标MAC地址。注1:按照IEEEStd802.1Q:2005的86.3,目标地址字段包含保留地址的帧不被网桥传递。注2:在2006年7月17日~20日的会议上,1EEE802.1工作组通过了一个提议,其内容包括:“重新分配当前被标识用于802.1AB的保留地址,使其作为一个地址可被协议使用,该协议要求将地址范围限制在一个单独【。AN内”和“IEC61588应使用的保留多播地址为0】一80∞oo000E。”此地址不是专门保留供PTP使用,而是~个共享地址。每个端口上,对等延时测量应使用离开端口的MAC地址作为PTP对等延时机制报文的源MAC地址。F.4transportSpecific字段值transportspecific字段(见13.3.2.1)应被解释为表F.2中定义的Ethertype的一个子类型。如果设备识别出该子类型,则报文被传递给PTP层。如果设备未识别出该子类型,则报文被处理为具有不被识别的Ethertype的任何其他报文。 GB/T25931—2010/IEC61588:2009表F.2以太网传输特定宇段枚举值(十六进制)规范DEFAUI,TO所有PTP第2层Ethernet发送不被其他的列举值覆盖ETHERNET—AVB1该值被保留用来连接由IEEE802.1AVB任务组开发的P802.1AS标准保留2~F保留用于本标准将来版本的分配F.5可选值当Ethernet传输机制允许多优先级,事件报文应使用最高优先级。注:对于以太网,IEEEStd802.1Q:2005详述了优先级的实现。F.6协议地址当networkProtocol成员值为IEEE802.3(见7.4.1),对数据类型PortAddress的任意参量(见5.3.6):——addressI.ength成员值应为6。——addressFleld成员值应是以太网报文头的6个八位位组源地址字段。179 GB/T25931—2010/IEC61588:2009G.1协议附录G(规范性附录)PTP在DeviceNET上的传输本附录规定了DeviceNet特定实现的PTP标准部分。本附录规范应适应于使用DeviceNet作为通信网络的所有PTP实现。对于DeviceNet的其他信息,见ODVA(开放式DeviceNet制造商协会,http://www.odva.org)提供的DeviceNet规范。注:DeviceNet也包含在IEC620263:2007中。G.2事件报文时间戳点事件报文时间戳点(见7.3.4.1)应为PTP事件报文第一个分段数据包的帧结束字段的第六比特下降沿,见图G.1。c一帧字段[三二]j亟夏]⋯[二二巫E]·[亟互]二亟互]cw一帧比特[j二]二j[]⋯[j二]二jE]⋯[j二]二j互]G.3clockIdentityf时问戳点图G.1事件报文时间戳点clockIdentity八位位组[o]~[7](见7.5.2.2.3)应为节点制造商标识(制造商ID)和节点相关的惟一序列号的组合。示例:x公司的制造商lD是AC7B。s。如果x公司希望开发DeviceNet设备,则clockldentity的合法值是:0201ACTBF22235C0116,其中的4个八位位组数组F2235C01.。,由x公司确保其在x公司分配的所有DeviceNet编号中是惟一的。表G.1描述了clockIdentity的八位位组2~7的赋值,八位位组[o]和[1]在7.5.2.2.3中规定。表G.1DeviceNet的clockldentity八位位组0~7技术制造商ID序列号字段曼1234567八位位组顺序01AC7BF2235C01十六进制000000100000000110101100011110111111001000100011010111000000000l比特最高有效字节最高有效位180最低有效字匍最低有效位 GB/T25931—2010/IEC6158812009G.4PTP报文格式PTP报文的传输首先传输数据类型的最高有效字节,随后按照字节有效性递减的顺序依次传输。PTP报文的第一个八位位组应紧跟在DeviceNet报文头的最后一个八位位组之后。这些数据通过多个DeviceNet数据包(帧)进行发送,符合标准DevJceNet显式报文分组逻辑。所有PTP报文在DeviceNet上进行分段。所有数据包中都包含DeviceNet报文头。表G.2规定了用于所有PTP报文数据包的DeviceNet报文头。该报文头出现在PTP报文的每个DeviceNet帧中。表G.2用于所有PTP报文数据包的DevieeNet报文头八位位组类型0(资料性)字段名八位位组Fragment甜1XID0,SouceMACIDh。hlJoJ1k。kl八位位组IFragmentType,FragmentCount八位位组R/R—1.ServiceCode—UCMMServicCodeG.5PTP的DeviceNet寻址所有PTP报文,应通过具有无连接报文管理器(ucMM)能力的设备将其作为无连接响应报文(MessageGroup为3,MessageID为5)进行发送,以及通过仅组2(Group2Only)的服务器将其作为无连接响应报文(MessageGroup为2,MessageID为3)进行发送。因此,子网上的每个节点都有其自身惟一的多播地址(控制器局域网(CAN)标识符)。所有域使用相同的多播地址。所有PTP报文应将DeviceNet报文头中的请求/响应位设为TRUE。PTP多播地址被其他DeviceNet功能共享,其中一些功能是点到点报文。为识别一个PTP报文,发送节点应将DeviceNet报文头中的目的节点字段设为它自己的节点地址。这样,报文进而被UCMM服务码标识为PTP报文。事件类报文的UCMM服务码字段应为88(58。e),普通类报文的UCMM服务码字段应为89(5916)。当networkProtocol成员值是DeviceNet时(见7.4.1),对数据类型PortAddress的任意参量(见5.3.6):——addressI。ength成员值应为2。——addressField成员值应是DeviceNetmacID。G.6transportSpecifie字段值transp。rtspecific字段的所有比特(见13.3.2.1)应设为0被发送,且被接收方忽略。181 GB/T25931—2010/IEC61588:2009附录H(规范性附录)PTP在ControlNET上的传输lL1协议本附录规定了ControlNet特定实现的PTP标准部分。本附录规范应适用于使用ControlNet作为通信网络的所有PTP实现。关于ControlNet的其他信息,见ControlNet国际组织”’提供的ControlNet规范。注:ControlNet也包含在IEC61158中类型2中。H.2clockldentityclockIdentity八位位组[2]~[7](见7.5.2.2.3)应为节点制造商ID和节点相关的惟一序列号的组合。示例:X公司的制造商ID是AC7B№如果x公司希望开发ControlNet设备,则clockIdentity的合法值是:0202AC7BF22235C01⋯其中的4个八位位组数组F2235C01⋯由X公司确保其在X公司分配的所有ControlNet编号中是惟一的。表H1描述了clockIdentity的八位位组2~7的赋值,八位位组[o]和[1]在7.5.2.2.3中规定表H.1ControlNet的clockldentity八位位组2~7技术制造商ID序列号字段曼1234567八位位组顺序02AC7BF2235C01十六进制最高有效字节最高有效位H3PTP报文格式1010110001i1101111110010001000110101110000000001比特最低有效字制最低有效位PTP报文的传输首先传输数据类型的最高有效字节,随后按照字节有效性递减的顺序依次传输。PTP报文的第一个八位位组应紧跟在ControlNetLPacket报文头的最后一个八位位组之后。Ht4PTP的ControlNet寻址PTPI。数据包的目的地址字段应为255(FF。s)(广播)。对事件报文,PTPI。Packet的固定Tag字段应为141(8D1。);对普通报文,PTPLLPacket的固定Tag字段应为142(8E16)。当networkProtocol成员值是ControlNet时(见7.4.1),对数据类型PortAddress的任意参量(见5.3.6):——addressLength成员值应为2;——addressField成员值应是设备的controlNet节点号。H.5transportSpecific字段值transportspecific字段的所有比特(见13.3.2.1)应设为0被发送,且被接收方忽略。10)httpL}f㈣.controlnetorg182 I.1背景GB/T25931—2010/LEC61588:2009附录I(规范性附录)PTP在IEC61158类型10上的传输PROFINET(IEC61158类型10)规定了一种现场总线通信系统。关于该现场总线通信系统如何被用来在系统中实现互操作的更多特定信息,在通信行规IEC61784一l:2007和IEC61784—2:2007中给出。IEC617841:2007和IEC617842:2007规定了通信行规簇(CPF),并且在一个CPF内有一个或多个通信行规(CP)。CP对应于IEC61158的类型。IEC617841:2007规定了各种现场总线。IEC617842:2007规定了各种实时以太网现场总线。PROFIBUS“⋯和PROFINET在CPF3中规定。CP3/4、CP3/5和CP3/6规定了IEC617842:2007中的PROFINET。IEC61158类型10协议在IEC61158610:2007中规定。IEC61158类型10的服务在IEC61158—510:2007中规定。本附录规定了IEC61784—2:2007的CP3/4、CP3/5和CP3/6(即众所周之的PROFINET)第2层上的协议。这些CP参见IEC61158—5—10:2007、IEC61158—6—10:2007和其他标准。图I.1示出了一个PTP区域和一个IEC61158类型10区域。使用边界时钟进行两个区域间的协议转换。本附录协议功能上等同于本标准主要条款和附录中第2层上的PTP透明时钟和普通时钟的功能。然而,本附录协议具有不同的PTP报文编码,以满足IEC61158内IEC617842:2007的CP3/4、CP3/5和CP3/6的编码规范。本附录不适用于IEC617841:2007的CP3/1、CP3/2和CP3/3。注:现有ASIC支持IEC617842:2007的CP3/4、CP3/5和CP3/6在第2层的PTP。本附录的编码应用于满足IEC61158内IEC617842:2007的CP3/4、CP3/5和CP3/6的编码规范要求的实现。图I.1PROFINET区域与其他域结合11)PROFIBUSTM是非盈利组织PROFIBUS用户组织(PNO)的商标名。该信息用来方便本标准的用户,不表示对1EEE这些产品的认可。如果等效产品能够显示可获得相同结果,则可以使用。183 GB/T25931—2010/IEC61588:2009I.2报文规范不同报文名的映射见表I.1。表I.1报文映射PRoFINET名称PTP名称SvncPDUSyncFollowUpPDUFollow_UPAnnouncePDUAnnounee未使用Delay_Req未使用Delay—RespDelayReqPDUPdelay_ReqDelavResPDUPdelay_RespDelavFuResPDUPdelay_Resp——Follow—.UP未使用Signaling未使用ManagementPROFINET报文的编码及所用的首字母缩写词、缩略语和约定应按照IEC61158510:2007和IEC61158610:2007使用。当networkProtocol成员值是PROFlNET时(见7.4.1),对数据类型PortAddress的任意参量(见5.3.6):——addressLength成员值应为6;——addressField成员值应为以太网报文头的6个八位位组源地址。I.3IEC61158类型10的DLPDUI.3.1DLPDU的抽象句法表I.2给出了根据IEEEStd802.3:2005的DLPDU抽象语法概要。表1.2中字段的编码与解码应符合IEEEStd802.3:2005的DI,PDU。表I.2IEEE802.3DLPDu语法DI。PDU名称DLPDU结构Preamble8、StartFrameDelimiter、DestinationAddress、SourceAddress、DLSDU6、DLPDUDLPDUPadding。、FrameCheckSequenceDl,SDULT、FIDAPDUframelD.SyncPDU“AnnouncePDU‘FollowUpPDU‘DelayReqPDU—DelayResPDU‘DeFlDAPDUlayFuResPDU注:根据IEEEStd8023:2005,DLPDU的最小长度为64个八位位组(不包括前导码,起始帧定界符)。8该字段至少包含7个八位位组。bDl。SDU最小长度是2个八位位组。。填充的八位位组个数应在O~45的范围内,取决于DLSDU的长度。填充的值应设置为0。I.3.2DLPDU宇段目标地址的编码DI。PDU字段应编码为数据类型Octec[6]。目标地址字段的值应为IEEE802的MAC地址。对PROFINETPDU中的PTP,其值应根据表I.3设置。184 表I.3多播MAC地址GB/T25931—2010/IEC6158812009组MAC地址含义olOE—CF-00—-04—-00与AnnoucePDU和FrameID(=FF0016)联台用于时钟同步010ECF00—04—01与AnnoucePDU和FrameID(一FF01l6)联合用于时间同步01—0E_CF0004XX与AnnoucePDU和FrameID(=FFxxl6)联合用于同步010E-CF-00--04--1F与AnnoucePDU和FramelD(一FFIFl6)联合用于同步01-0E_CF000420与有followup的SyncPDU和FramefD(一0020ls)联合用于时钟同步010E_CF一00—04—21与有followup的SyncPDU和FrameID(一0021]6)联舍用于时间同步010ECF0004XX与有followup的SyncPDU和FrameID(一00xx】6)联合用于同步01-0E—CF-00—.04—r3F与有followup的SyncPDU和FrameID(一003F16)联合用于同步01-0E-.CF-00—t04—r40与FolIowUpPDU和FrameID(一FF20,s)联合用于时钟同步010E—CF-00—04—41与FollowUpPDU和FrameID(一FF2116)联合用于时间同步0卜0ECF0004XX与FolIowUpPDU和FramelD(一FFxxl6)联合用于同步01—0E_CF_00045F与FolIowUpPDU和FramelD(一FF3F。s)联合用于同步0卜0E_CF0004—80与SyncPDU和FramelD(一00801。)联合用于时钟同步01-0E—CF00—04—81与SyncPDU和FramelD(一0081,s)联合用于时间同步01—0ECF0004XX与SyncPDU和FrameID(一00xxl6)联合用于同步01—0E—CF0004—9F与SyncPDU和FrameID(一009F16)联合用于同步01-80一C2000E与DelayReqPDU和FrameID(=FF4016),有followup的DelayResPDU和FrameID(一FF41l6),DelayFuResPDu和FramelD(FF4216)和无followup的见注3DelayResPDU及FrameID(FF4316)联合用于点到点延时测量注l:八位位组1包含单独/组地址比特(LSB)注2:本表中从010E—CF开始的地址,是基于PROFlBUS用户组织PNO拥有的OUl。注3:MAC地址01—80一c2000E表示从IEEEStd802.1AB管理的多播地址池中获得的一个多播地址。该地址详见F.3。I.3.3宇段LT的编码LT字段应依据IEEEStd802.3:2005(Unsigned16)的值进行编码。本规范使用符合表I.4的值。表I.4LT(长度/类型)值(十六进制)含义8892PRoFINETI.3.4字段FramelD的编码FrameID字段应编码为数据类型Unsigned16,其值依据表I.5。该字段标识APDU的结构和类型。185 GB/T25931—2010/IEC61588:2009表I.5FramelD值(十六进制)含义用途0000~001F保留0020SynePDU有follow—up的SyncPDU,用于时钟同步(等时同步应用)002lSyncPDU有follow_up的SyncPDU,用于时问同步0022~00FF保留0080SyncPDU无follow_up的SyncPDU,用于时钟同步(等时同步应用)0081SyncPDU无follow_up的SyncPDU,用于时间同步0082~00FF保留FFOOAnnouncePDU(时钟)AnnoueePDU用于时钟同步(等时同步应用)FF01AnnouncePDU(时间)AnnoueePDU用于时间同步FF02~FFlF保留FF20FolIowUpPDU(时钟)FolIowUpPDU用于时钟同步FF21FolIowupPDu(时间)FolIowUpPDU用于时间同步FF22~FF3F保留FF40DelayReqPDUDelayReqPDU用于路径延时测量FF41DelayResPDUDelayResPDU用于具有follow—up的路径延时测量FF42DelayFuResPDUDelayFuResPDU用于路径延时测量FF43DelayResPDUDelayResPDU用于无follow_up的路径延时测量FF44~FFFF保留I.3.5编码规范网桥能在边沿转换2种格式。不同格式、不同参数和属性名称的映射见表1.6。flagFidd(见13.3.2.6)到PROFINET的转换见表L7。表I.6参数和属性名称的映射PROFINET中的名称报文类型PTP版本2中的名称无对应部分transportSpeclficSyncPDUFollowUpPDUAnDouncePDUFrameIDmessageTypeDelayReqPDUDelayResPDUDelavFuResPDU无对应部分VersionPTP无对应部分messageLengthSyncPDUFollowUoPDUAnDouncePDUSubdomainUUIDdomainNumeberDelayReqPDUDe[ayResPDUDelayFuResPDU 表I.6(续)GB/T25931—2010/IEC6158812009PROFINET中的名称报文类型PTP版本2中的名称按照表136SyncPDUflagFieldSynePDUFollowUpPDUAnnouncePDUSequenceIdsequenceIdDelayReqPDUDclayResPDUDelayFuResPDU无对应部分controlFieldSyncPDUMasterSourceAddressFollowUDPDUclockldentitvAnnouncePDU在PROFINET中规定logMessageIntervalSecondsSyncPDUseconds(bit0~31)NanoSecondsSyncPDUNanosecondsEpochNumberSyncPDUseconds(bit32~47)CurrentUTCOffsetSyncPDUcurrentUtcOffsetSyncPDUClockNecuracyclockAceuracyAnnouncePDUSyncPDUClockClassclockClassAnnouncePDUSyncPDUMasterPrioritv1Priority1AnnouncePDUSyncPDUMasterPriority2Priority2AnnouncePDUSyncPDUClockVarianceoffsetScaledLogVarianceAnnouncePDU无对应部分stepsRemoved无对应部分grandmasterIdentity无对应部分parentPortIdentltyDelayReqPDURe口uestSourceAddressDelayResPDUclockIdentltvDelayFuResPDUDelayReqPDURequestPortlDDdayResPDUportNumberDelayFuResPDU187 GB/T25931—2010/]EC6158812009表I.7从PTP版本2到PROFINET的flagField转换PROFINET中的名称PTP版本2中的名称最后1min有61sflagFieldleap61最后1min有59sflagFieldleap59由AnnouncePDU通知flagField.alternateMasterFlag在FrameID中编码flagField.twoStepFlag时闻同步且ClockStratum=1或2时为TRUEfla§Field.timeTraceableC[ockStratum=1或2时为TRUEflagFieldfrequencyTraceabIe时钟同步时为FAI。SE(ARP)。如果标识符不是1NIT或DFLT,时间同步时为TRUE;flagField.ptpTimescale否则为FALSE时钟同步时为FAI。SE(ARP)。如果标识符不是INIT或DFLT,时间同步时为TRUE;flagField.currentUtcOffsetValid否则为FAI,SEFALSEflagField.unicastFlag设为FAI.SE所有其他flagFieldIEC61158类型10的参数、属性和使用的首字母缩写词、缩略语以及约定的编码,应根据IEC61158—5—10:2007和IEC61158610:2007进行。188 J.1概述附录J(规范性附录)缺省PTP行规GB/T25931—2010/IEC6158812009每个缺省PTP行规规定了选项和属性的一个选择。每个选择规定了一个无需用户配置就可工作的系统。J.2通用要求节点应实现规定了缺省值或选项的相应PTP行规的所有要求,使得这些缺省值或选项的应用不需要用户配置,即同制造商交付的一样。J.3延时请求一响应缺省PTP行规J.3.1标识本PTP行规的标识值(见19.3.3)如下:PTP行规具有延时请求一响应机制的缺省PTP行规版本1.0行规标识符:00—1B-19-00—01-00J.3.2PTP属性值所有节点都应支持取值范围,并且属性应具有如下缺省初始化值:——defaultDs.domainNumber:缺省初始化值应为0;——portDs.109AnnounceInterval:缺省初始化值应为1,可组态取值范围为O~4;——portDs.109syncIntervaj:缺省初始化值应为0,可组态取值范围为一1~+l;——portDs.109MinPdelayReqInterval:缺省初始化值应为0,可组态取值范围为o~5;——p。rtDs.announceReceiptTimeout:缺省初始化值应为0,可组态取值范围为2~10;——defaultDs.Priority1:缺省初始化值应为128;——defauItDs.Priority2:缺省初始化值应为128;——defaultDs.slaveOnly:如果该参数是可组态的,则缺省值应为FAI。SE;--transparentClockdefaultDS.primaryDomain;缺省初始化值应为0;——r,见7.6.3.2:缺省初始化值应为1.0S。每个定义的范围,制造商可自行扩展。J.3.3PTP选项所有15.5.4.1.7和第17章的选项都是允许的。缺省地,除非明确地被管理规程激活,这些选项都是非活动的。节点管理应实现本标准的管理报文机制。最佳主时钟算法应为9.3.2规定的算法。延时请求响应机制应为缺省路径延时测量机制。也可实现对等延时机制。注:每个链路只允许单一机制。边界时钟应在采用不同路径延时机制的链路之间使用。J.3.4时钟物理要求J.3.4.1频率精度每个最高级时钟应保持频率偏移不大于s1秒的0,01%。】89 GB/T25931—2010/IEC61588:2009J.3.4.2频率调整范围任何处于SLAVE状态的时钟都应能够校正其频率,以匹配满足J.3.4.1要求的任何主时钟。注:频率调整范围应至少为士o025%。J.4点到点缺省PTP行规J.4.1标识本PTP行规的标识值(见19.3.3)如下:PTP行规具有对等延时机制的缺省PTP行规版本2.0行规标识符:001131900—02—00J.4.2PTP属性值所有节点都应支持取值范围,并且属性应具有如下缺省初始化值:——defaultDs.domainNumber:缺省初始化值应为0;——portDs.109AnnounceInterval:缺省初始化值应为1,可组态取值范围为o~4;——p。rtDs.109syncInterval:缺省初始化值应为0,可组态取值范围为一1~+1;——portDs.109MinPdelayReqInterval:缺省初始化值应为0,可组态取值范围为o~5;——p。rtDs.announceReceiptTimeout:缺省初始化值应为3,可组态取值范围为2~10;——defaultDs.Priority1:缺省初始化值应为128;一defaultDS.Priority2:缺省初始化值应为128;——defaultDs.slaveOnly:如果该参数是可组态的,则缺省值应为FALSE;——transparentC[ockdefaukDS.primaryDomain:缺省初始化值应为0;——r,见7.6.3.2:缺省初始化值应为1.0s。每个定义的范围,制造商可自行扩展。J.4.3PTP选项所有15.5.4.1.7和第17章的选项都是允许的。缺省地,除非明确地被管理规程激活,这些选项都是非活动的。节点管理应实现本标准的管理报文机制。最佳主时钟算法应为9.3.2规定的算法。对等延时机制应为缺省路径延时测量机制。也可实现延时请求一响应机制。注:每个链路只允许单一机制。边界时钟应在采用不同路径延时机制的链路之间使用。J.4.4时钟物理要求J.4.4.1频率精度每个最高级时钟应保持频率偏移不大于s1秒的0.01%。J.4.4.2频率调整范围任何处于SLAVE状态的时钟应能够校正其频率,以匹配满足J.4.4.1要求的任何主时钟。注:频率调整范围应至少为土0.025%。 K.1概述附录K(资料性附录)安全协议(实验性)GB/T25931—2010/IEC61588:2009本附录定义了一个PTP的实验性安全扩展,见14.2。由于本附录不是规范性附录,不使用术语“应”来表示要求,而使用“要求”代替。为了在PTP将来版本中本附录成为规范性时能正确实现本扩展,建议本扩展的实现者将本附录中的“要求”解释为“应”。PTP安全扩展和协议为PTP报文提供了组源认证、报文完整性以及重放攻击保护。PTP安全协议由以下两个基本机制构成:——完整性保护机制,它使用报文认证码来验证接收到的报文是由已认证的源发送的,传输中没有被修改并且是新的(即,不是报文的重放)。重放保护是通过计数器实现的;——挑战响应机制,它用来确认新的源的真实性,维护信任关系的新鲜性。K.2协议综述PTP安全协议使用对称报文认证码功能。它提供组源认证、报文完整性以及重放保护。安全协议不提供认可。协议支持HMAC—SHAl—96和HMAC-SHA256—128,并且允许将来增加其他报文认证码。要求这些算法的实现与参考文献IETCRFC2104[B10]、IETFRFC2404[B11]、NISTSHS标准EB20]以及NISTHMAC标准[B21]一致。协议中的参与者共享对称密钥。该密钥可由整个域或域的子集共享。可通过手动配置或自动密钥管理协议来完成密钥分发,这两钟方式PTP安全扩展均支持。密钥分发不在本规范的范围内。PTP安全协议中的参与者通过安全联盟(SA)进行通信。一个SA包含一个源(源端口,协议地址)、一个目的地(目的端口,协议地址)、一个密钥、一个随机lifetimeld以及一个重放计数器。SA是单向的,它保护从源到目的地的流量。每个节点维护一个输入SA表,它用于对输人流量的验证;以及一个输出SA表,它用来对输出流量的保护。一个SA可以由单个发送方和多个接收方共享。发送方持有SA的一个单一副本,每个接收方都有其自己的一个副本。接收方的副本可能同时包含SA重放保护计数器的不同值,但它们均比同时存储在SA的发送方副本中的重放计数器小。SA是由发送方创建的,并与接收方通信。发送方可以选择为每个源和所有的目的地创建一个单一的SA,即,创建一个SA,源是其接口单播地址之一,目的地为“所有的”;或者可以选择为每一个源和目的地创建一个单一的SA,即,创建多个具有相同的接口源地址和不同的多播和单播目的地的SA。这是实现特定的。如果使用一个单一SA对应所有目的地,则重放保护计数器的翻转将快的多,这增加SA的更新速率。如果使用多个SA对应多个目的地,则输出SA表将更大。SA上的报文接收方不关心发送方使用了哪种SA实现方法。完整性校验值(ICV)是将算法ID确定的报文认证码功能应用到整个数据包(该数据包含有安全AuTHENTIcATIONTLv)的结果,算法ID具有用密钥ID标识的适当密钥。只有知道共享密钥的节点可以分别修改报文和它的ICV;因此,没有密钥的攻击者的任何篡改报文企图,在接收方验证ICV失败时均可被检测到。重放保护机制依赖一个随机寿命ID(1ifetimeID)和重放保护计数器,这些都是SA的一部分。无论何时有数据包通过该SA时,重放计数器都增加2。接收方验证数据包中的寿命ID与其输入SA表中发送方SA的寿命ID是否匹配,以及数据包中的计数器是否比SA中存储的值大。191 GB/T25931—2010/IEC61588:2009K.3通用要求PTP安全协议使用PTP报文头中的一个标志位来指示报文带有安全AUTHENTICATIONTLV。PTP报文头的flagField(见13.3.2.6)被扩展1个比特,定义见表K.1。表K.1flagField.SECURE标志八位位组比特报文类型名称描述如果报文尾部是安全AUTHENTIcATI()N07所有SECURETLv,则为TRuE;否则为FALSE要求将每个安全传输的PTP报文的flagField.SECURE标志设为TRUE,并且包含K.15中定义的安全AUTHENTICATIONTLv扩展。要求该扩展是附加到PTP报文的最终TLv扩展。注:为方便安全协议的硬件实现,ICV字段应是报文的最后字段。在本附录中,某些情况下规定的动作是“安静地丢弃”一个接收到的报文。这表示该报文不被进一步处理而被丢弃,且没有为处理该报文而分配内部或外部资源。然而,可将事件用一个统计计数器记录,或者采取任何其他不分配新系统资源的类似动作。本定义限制了耗尽系统或网络资源的拒绝服务攻击的能力。有些PTP系统要求支持安全时钟与非安全时钟的混合。例如:一个PTP系统由两个支持安全协议的最高级时钟(一个作为后备)、一组支持安全协议的普通时钟,以及一组不支持安全协议的slaveonly时钟构成。该PTP系统的管理者可以允许非安全slave-only时钟同步到安全最高级时钟。正如本附录定义的一样,时钟间的所有通信都必须是安全的。因此,尽管从时钟可以解析最高级时钟发送的Announce和Sync报文,最高级时钟丢弃来自slaveonly时钟的非安全Delay—Req报文。期望在行规或PTP下一版本的本附录扩展能引入其他“安全策略”,使得安全时钟和非安全时钟混合使用。像这样扩展的例子包括允许在一个有限报文速率下,一个时钟处理并应答非安全Delay—Req和Pdelay_Req报文,或者处理并应答非安全管理Get请求。K.4挑战一响应交换挑战一响应交换是一个三方互相认证的协议,其中两个节点利用该协议确认其真实性与新鲜性。一个节点只有在成功执行了与另一个节点的挑战一响应后,才信任从该节点接收到的完整性与重放信息。每个时钟都维护一个输入安全联盟列表。输人SA可以是静态的,即提前配置的;或者一旦时钟从一个与当前输入SA集中任何成员的sourcePortIdentity和协议地址不匹配的端口,接收到一个PTP报文时,就立即创建一个输入SA。一旦时钟初始化和新SA被创建,输入SA的信任状态就被设为UNTRUSTED。信任状态只有在根据K.10成功执行了挑战一响应测试后才被设为TRUSTED。每个输入SA维护一个定时器,该定时器测量自上一次接收到一个认证报文后经过的时间。当该定时器超时,则输入SA信任状态被设为uNTRusTED。如果SA不是静态的,则一旦超时该SA被丢弃。当时钟接收到一个来自不信任源的报文时,它启动一个挑战响应交换。输入报文必须将flagField.SECURE标志设为TRUE,必须包含安全AUTHENTICATIONTI。V,且必须通过K.6的完整性校验值(ICV)测试。如果接收到的报文不与一个输入SA相匹配,只要资源允许就创建一个新的动态输入SA。输入SA维护挑战状态和一个挑战定时器。当发送了一个挑战请求且一个重放处于挂起时,挑战状态被设为CHALI。ENGING。只要挑战状态是CHALLENGING,就没有新的挑战请求通过该SA发送。如果未接收到挑战应答,则挑战定时器超时且挑战状态被设为IDLE。挑战响应交换使用AUTHENTICATION—CHALLENGETI。V。AUTHENTICATION一192 CB/T25931—2010/IEC61588:2009CHALLENGETLV包含定义以下挑战类型的一个字段:challengeRequest,challengeResponseRequest和challengeResponse。AuTHENTIcATIoN—CHALLENGETLV必须附加为安全信号报文的第一个TI.V。要求挑战交换中使用的信号报文仅用于安全协议操作。也启动挑战一响应交换来更新K.5中定义的安全联盟参数。K.5安全联盟更新交换重放保护要求重放计数器不翻转。输出SA维护当前以及下一个随机产生的非零寿命ID。当输出SA的重放计数器翻转时,SA从当前寿命ID转换到下一个寿命ID,并产生一个新的下一个寿命ID。输入SA维护当前以及下一个寿命ID。一旦接收到安全AUTHENTICATIONTI。V中有下一个寿命1D的第一个认证报文,输入SA转换到该下一寿命ID。输入SA从AUTHENTICATIONTLV复制重放计数器的值,并启动一个挑战响应交换来确定新的下一个寿命ID。在挑战响应报文和挑战一响应一请求报文中使用SECURITY—ASSOCIATION—UPDATETLV来传输下一个寿命ID。如果响应方为每个与请求方通信的输出地址(单播、多播及p一多播)都维护一个不同的输出SA,则需要使用多个TLV。一旦一个给定密钥即将过期,安全联盟更新交换包括给交换提供下一个密钥ID以更新安全联盟密钥。密钥ID应经常更换,更换频率足以保护不受由于寿命ID重复使用而引起的重放攻击。因此,共享密钥分发机制必须更新共享密钥以维护足够的有效密钥。输入SA维护当前和下一个密钥ID。一旦接收到安全AUTHENTICATl0NTLV中有下一个密钥ID的第一个认证报文,输入SA转换到下一个密钥ID。输入SA启动一个挑战一响应交换以确定新的下一个密钥ID。下一个密钥ID用SECURITY—ASSOCIATION—UPDATETI。V在挑战响应报文与挑战一响应一请求报文中传输。K.6完整性校验值(ICV)测试ICV是应用报文认证码功能的结果,报文认证码功能是由带有密钥ID标识的适当密钥的算法ID规定的。算法特定的处理规则见K.15.7。对每个从输出安全联盟发送的PTP报文,安全AUTHENTICATIONTLV的ICV字段计算如下:a)使用输出SA的密钥ID规定的密钥作为哈希算法(hashalgorithm)要求的密钥值;b)使用与密钥ID相关的、由算法ID确定的哈希算法来计算ICV值。算法ID是从由密钥ID索引的密钥列表数据集中找出的;c)通过使用所选的哈希算法和保密密钥,在所有PTP报文字段上计算ICV值,计算从公共报文头的第一个八位位组开始,到安全AuTHENTIcATIoNTI,v的最后一个八位位组结束,包含最后一个八位位组。在该计算前,ICV字段的所有比特都须设为0。计算输入报文的ICV,并将其与在安全AUTHENTICATl0NTLv中携带的ICV进行比较。校验执行如下:a)如果AUTHENTICATIoNTI。V中的keyId指定的密钥不是有效的或是未知的,则ICV校验失败;b)如果AuTHENTIcATIoNTI。V中的algorithmId不等于与密钥列表数据集中与keyld相关的算法ID,则ICV校验失败;c)通过算法选择的报文认证码功能与密钥,在所有PTP报文字段上计算ICV值,计算从公共报文头的第一个八位位组开始,到安全扩展TLV的最后一个八位位组结束,并包含安全扩展TI。V的最后一个八位位组。7在该计算前,AUTHENTICATl0NTLV的ICV字段所有比特193 GB/T25931—2010/IEC61588:2009值都须设为0。如果计算出来的ICV与输入报文AUTHENTICATIONTLv中的ICV不匹配,则ICV测试失败。否则,ICV测试通过。K.7安全联盟查找将接收到的PTP报文与输入安全联盟进行匹配,以确定这些报文是否从一个信任源接收到的。如果PTP报文头的sourcePortId以及源协议地址与输入安全联盟的源端口以及源地址相匹配,并且报文的目的端口(如果规定了)以及目的地址与输入安全联盟的目的端口以及协议地址相匹配,则接收到的报文与该安全联盟相匹配。安全联盟查找指出一个匹配的安全联盟是否存在,并返回该安全联盟的信任状态。K.8keyld检验本测试验证一个输入报文的keyId是否与输入安全联盟值相匹配。将从一个信任源(也通过了ICV测试)接收到的PTP报文的keyId与SA的相应值进行比较。将输入keyld与SA的sa.keyld进行比较。如果两者一样,则测试通过。如果keyld与SA维护的sa.nextKeyld相匹配,则将SA的sa.nextKeyId复制到SA的sa.keyld,将sa.nextKeyId设为0,并启动一个安全更新交换。与sa.keyId或与sa.nextKeyld不匹配的报文将被安静地丢弃。只要输入SA的sa.nextKeyId为0,且挑战状态不是CHALI。ENGING,则每次SA成功接收一个新报文时,输入SA联盟均启动一个安全更新交换。K.9重放保护机制重放保护机制依赖这样的事实:sourcePortIdentity、lifetimeId、replayCounter三元组出现两次的概率极低(几乎为0)。该概率取决于共享密钥的寿命,密钥交换频率越高则它越低。lifetimeld和replayCounter字段由输出安全联盟设置。对于通过输出SA发送的每个报文,sa.re—playCounter增加2。当sa.replayCounter翻转时,lifetimeld则由另一个随机的lifetimeId代替。sa.replayCounter和sa.1ifetimeld的值在安全AUTHENTICATIONTLV中发送。重放保护测试是在从一个信任输入SA接收到的包上进行的。将输入lifetimeld与输人SA的sa.1ifetimeId相比较。如果两者一致,则将输人replayCounter字段与输入SA的sa.replayCounter相比较。如果输入replayCounter字段小于或等于输入SA的sa.replayCounter,则报文被安静地丢弃。如果lifetimeId字段与输入SA维护的sa.nextI,ifeTimeld匹配,则将输入AUTHENTICATIONTI.V中的repiayCounter字段复制到输入SA的sa.rep[ayCounter,将输入SA的sa.nextLifetimeld复制到输入SA的sa.1ifetimeld,将8a.nextLifetimeld设为0,并启动一个安全更新交换。与sa.1ifetimeld或与sa.nextLifetimeId不匹配的报文将被安静地丢弃。只要输入SA的sa.nextLifetimeId为0,且挑战状态不是CHALLENGING,则每次SA成功接收一个新报文时,输入SA均启动一个安全更新交换。K.10挑战-响应检验挑战响应交换使用随机nonce来验证源的真实性与新鲜性。AUTHENTICATION—CHAI。LENGETLV包含一个请求nonce和一个应答nonce。挑战请求和挑战一响应请求的发送方将请求nonce设为一个随机数。挑战响应或挑战响应请求的接收方将它发送的请求中的请求nonce与应答进行匹配。如果输入挑战报文中的响应nonce,与挑战报文的请求nonce字段中发送的nonce不匹配,则挑战响应检验失败,挑战报文被安静地丢弃。]94 GB/T25931—2010/IEC61588:2009挑战报文必须通过ICV测试。对于信任源,挑战报文也必须通过重放保护测试。如果这些测试中的任意一个测试失败,则挑战报文被安静地丢弃。K.11共享密钥分发分发共享密钥来增加和更新系统中每个PTP节点的安全密钥列表数据集,不在本标准范围内。K.12密钥产生密钥产生不在本标准范围内。下面描述了一个可选的密钥产生机制,该机制与HMAC—SHAl—96和HMAC—SHA256128一起使用并增加共享密钥数据集。首先描述一般方法。假设H(x)为报文x的n_bit散列(hash),k为要产生的n-bit密钥,P为一个口令,ss为短期(short—term)salt,sl为长期(10ng—term)salt。变量ss、sl、P与x均为任意字符串。尽管P必须保密,但是SS和sl是公共值。典型地,sl可以是运行它的网络名或组织名(例如,“物理实验室”),sl可以是口令周期的日期或一个密钥名(例如,“2007年1月~6月”)。lI表示串联,则:k--H(slSSllp)fori一1,2,⋯1000k,一H(k(,一1))k的最终值即(k。。)可以按需截取以形成最终密钥。长期salt(s1)可在所有的站中初始化一次,并在以后不再改变,这防止为不同名称的另一网络所产生的攻击字典被重新用在本网络中。无论何时密钥被改变,短期salt都应被改变,这防止为先前密钥而计算的一个攻击字典被重新用来攻击一个新的密钥。特别地,对PTP安全协议,可以采取下列步骤来产生密钥:对每个keyld:a)为每个密钥选择一个可变长度的口令;b)选择一个长期salt;c)选择一个短期salt;d)将长期salt、短期salt和口令串联成一个单一报文;e)使用SHA一1对报文进行散列计算;f)对得到的报文散列再进行1000次散列计算;g)通过SHA一1得到的输出的20个八位位组,就是K.13.2.3中定义的20个八位位组的共享密钥。K.13安全数据集K.13.1概述定义在本条中的安全数据集只用于提供说明,不要求特定的实现。安全数据集由输入和输出安全联盟列表、密钥列表以及defaultDS数据集参数列表构成。除非另有规定,所有成员的缺省值都是0。K.13.2密钥列表实现安全协议的PTP节点必须维护一个密钥列表。每个密钥列表条目由k1.keyld、k1.algorithmld、k1.securityKey、k1.startTime、k1.expirationTime和k1.valid比特组成。K.13.2.1k1.keyld(UInteger16)k1.keyId是密钥的惟一标识符。要求0值不用于指示一个有效密钥。K.13.2.2k1.algorithmId(UInteger8)k1.algorithmId指示与密钥一起使用的算法。195 GB/T25931—2010/]EC6158812009K.13.2.3kl,secnrityKey(Oetet[N])k1.securityKey字段保留安全密钥。K.13.2.4k1.startTime(Timestamp)k1.startTime指示密钥激活时间。k1.startTime前使用。N值与使用的算法有关。对sHA-1和SHA一256,N--20。当将有效性比特设为TRUE时激活密钥。密钥不应在K.13.2.5k1.expirationTime(Timestamp)k1.expirationTime指示密钥过期时间。一旦密钥到期,有效性比特设为FALSE,密钥不再被使用。一个值为0的k1.expirationTime指示密钥是永久的,因此不会过期。一个永久密钥应分发给所有的时钟。当所有其他时钟与本时钟通信失败时应使用永久密钥,该永久密钥仅限于建立一个安全联盟,然后变为非永久密钥。K.13.2.6k1.valid(Boolean)如果k1.-一alid设为FALSE,则密钥无效且要求不再被安全协议使用。K.13.3安全联盟安全联盟在两个列表中维护,包括输入安全联盟列表和输出安全联盟列表。每个安全联盟由sa.srcPort、sa.srcAddress、sa.destPort、sa.destAddress、sa.replayCounter、sa.1ifetimeId、sa.keyId、sa.nextLifetimeld、sa.nextKeyId、sa.trustState、sa.trustTimer、sa.trustTimeout、sa.challengeState、sa.requestNonce、sa.responseNonce、sa.challengeTimer、sa.challe“geTime。ut、sa.responseRequired、sa.challengeRequired和sa.typeField组成,定义如下所述。K.13.3.1sa.srcPort(Portldentity)将sa.srcPort与PTP报文头的sourcePortIdenti‘y相匹配。对输出SA,它指示时钟的一个端口;对输入SA,它等于发送报文的时钟的portldentity。对输出SA,sa.srcPort的portNumber成员可设为全l的值以指示该SA用于时钟的所有端口。对输入SA,要求portNumber成员或clockldentity成员不为全1的值。K.13.3.2sa.srcAddress(Octet[N])sa.srcAddress与PTP报文的源协议地址相匹配。对输出SA,sa.srcAddress可以设为全1值以指示该SA匹配所有地址。对输入SA,要求sa.srcAddress不等于全1值。接收到的PTP报文的源协议地址与输入SA的sa.sreAddress参数相匹配。发送的PTP报文的源协议地址与输出SA的sa.srcAddress参数相匹配。对Ipv4封装,N一4;对IPv6,N一16;对以太网,N=6。K.13.3.3sa.destPort(PortIdentity)对输出SA,sfl.destPort等于该报文要发送到的端口的portldentity;对输入SA,它等于时钟的其中一个端口的portldentity。对输出SA,可将sa.destPort设为全1值以指示“所有的时钟和所有的端口”。可将sa.destPort的portNumber设为全1值以指示该SA用于“一个特定时钟的所有端口”。例如,将发送到多播地址的Syne和Announce报文发送给所有的时钟和所有的端口。K.13.3.4sa.destAddress(Octet[N])sa.destAddress等于PTP报文的目的协议地址。对输出SA,它是报文要发送到的时钟地址;对输入SA,它等于时钟的单播地址之一或PTP多播地址之一。对输出SA,sa.destAddress可设为全1值以指示该SA匹配所有的地址。对Ipv4封装,N=4;对IPv6,N一16;对以太网,N一6。K.13.3.5sa.replayCounter(UInteger32)对输出SA,每次PTP报文通过该SA发送时,sa.replayCounter增加2。对输入SA,sa.replayCounter保存最后一个成功认证的输入AUTHENTICATIONTLV的replayCounter字段的值。该值用在重放保护机制中。j96 GB/T25931—2010/1EC61588:2009K.13.3.6sa.1ifetimeld(UInteger16)对输出SA,sa.1ifetimeld是一个随机数,用于标记通过该SA发送的所有包。对输入SA,将sa.1i—fetimeld与输入AuTHENTIcATIONTI,v中的lifetimeld字段进行比较。值为0指示仍未设置sa.1ifetimeld。K.13.3.7sa.keyld(UInteger16)sa.keyld指示用于ICV计算的密钥。对输入SA,在挑战一响应交换期间确定它。K.13.3.8sa.nextLifetimeld(UInteger16)当输出SA的sa.replayCounter翻转时,将sa.nextI.ifetimeld的值复制到sa.1ifetimeld,并产生一个新的随机非零值。输入SA的sa.nextLifetimeld在挑战一响应交换期间确定。值为0表示sa.nextLi—fetimeld还未被设置。K.13.3.9sa.nextKeyId(UInteger16)sa.nextKeyld指示当前密钥过期后将要使用的密钥。对输入SA,sa.nextKeyld在挑战响应交换期间确定。值为0指示sa.nextKeyld还未被设置。K.13.3.10sa.trustState(Enumeration)在成功的挑战一响应交换后将输入SA的sa.trustState设为TRUSTED,当超时或有初始化事件时将其设为UNTRusTED。不使用输出SA的sa.trustState。K.13.3.11sa.trustTimer(UInteger16)SA每次接收到一个成功认证的PTP报文时,输入SA的satrustTimer设为sa.trustTimeout值。每个周期securityEvent任务将其减1。当sa.trustTimer减到0时,将SA的sa.trustState设为UNTRUSTED。输出SA的sa.trustTimer固定为0。K.13.3.12%.trustTimeout(UInteger16)如果在一个安全事件的sa.trustTimeout周期内,没有通过该SA接收到已成功认证的报文,则输入SA超时。输出SA的s8.trustTimeout固定为0。K.13.3.13sa.challengeState(Enumeration)输入SA的sa.challengeState指示SA是否正在等待一个挑战请求的应答。可以将其设为CHAI。I。ENGING或IDI。E值。输出sA的sa.challengestate是固定的。K.13.3.14sa.challengeTimer(UInteger16)一旦SA发送了一个挑战一请求或挑战一响应一请求,则将该输入SA的sa.challengeTimer设为sa.challengeTimeout。每个周期securityEvent任务将sa.challengeTimer减1。当sa.challengeTimer减到0时,该SA的sa.challengeState设为IDLE。输出SA的sa.challengeTimer固定为0。K.13.3.15sa.challengeTimeout(UInteger16)在securityEvent的sa.challengeTime。ut周期内,如果没有接收到一个挑战一响应或挑战一响应请求,则将挑战状态改为IDI。E。输出SA的sa.challengeTimeout固定为0。K.13.3.16sa.requestNonce(UInteger32)sa.requestNonce值是在挑战请求中发送的requestNonce字段,并与响应中的nonce比较。它是一个用在挑战响应交换中的随机产生的非零数。K.13.3.17sa.responseNonce(UInteger32)sa.responseNonce是接收到的挑战请求中的requestNonce,并在SA中维护,以便于挑战一响应的产生。K.13.3.18sa.challengeRequired(Boolean)当需要发送一个挑战请求以更新输入安全联盟时,将sa.challengeRequired设为TRUE。197 GB/T25931—2010/IEC61588:2009K.13.3.19sa.responseRequired(Boolean)当需要发送一个挑战响应时,将sa.resp。nseRequired设为TRUE。K.13.3.20sa.typeField(Enumeration)sa.typeField可设为STATIC或DYNAMIC值。静态SA是预先配置的联盟,在时钟初始化期间维护,并存储在非易失内存中。如果没提前设置静态SA,则需创建动态SA来与时钟通信。下列属性在非易失内存和初始化事件中维护:——输出SA:sa.srcPort、sa.sreAddress、sa.destPort、sa.destAddress和sa.keyld。——输入sA:sa.srcPort、sa.SrCAddress、sa.destPort、sa.destAddress、sa.trustTimeout、sa.ehallengeTimeout。K.13.4defaultDS数据集安全变量defaultDS数据集包括以下两个安全参数:defaultDS.secu“tyEnabled和defaultDS.numberSecu—rityAssociations。K.13.4.1defaultDS.securityEnabled(Boolean)如果将defaultDS.securityEnabled设为TRUE,要求所有的PTP通信使用安全协议扩展。K.13.4.2defaultDS.numberSecurityAssociations(UInteger16)defaultDS.numberSecurityAssociations是时钟支持的安全联盟的最大个数,包括所有的输入和输出SA以及静态和动态SA。K.14协议操作K.14.1概述本条说明了安全协议的操作,以及对接收到的和发送的PTP报文的处理和挑战处理。理超时和发送挑战报文的安全事件周期进程。K.14.6详细说明透明时钟处理规则。K.14.2接收报文处理图K.1说明当defaultDS.secu“tyEnabled设为TRUE时,对输入PTP报文的处理。果是一致的,本条不要求特定的实现。处理步骤如下:a)安静地丢弃接收到的flagField.SECURE比特不为TRUE的输入报文;198也描述了处只要测试结b)安静地丢弃接收到的没有附加安全AUTHENTICATIONTI.V的输入报文;c)安静地丢弃没有通过按照K.6的完整性校验验证测试的输入报文;d)根据K.7查找匹配的输入SA;e)如果没找到匹配的SA且有可用的SA,则产生一个新SA;如果没有可用的SA,则安静地丢弃该报文;f)如果sa.trustState是UNTRUSTED:1)如果输入报文是一个挑战报文,则按照K.14.3中的定义继续处理;2)否则,将SA中的sa.challe“geRequired比特置位,并丢掉报文;g)如果信任状态为TRUSTED:1)如果依据K.8的keyld测试失败,则将报文安静地丢弃;2)如果依据K.9的重放保护测试失败,则将报文安静地丢弃;3)如果输入报文是一个挑战报文,则按K.14.3中的定义继续处理;4)如果输入SA的8a.nextI,ifetimeId或sa.nextKeyId为0,则将SA中的sa.challengeRequired比特设为TRUE;5)触发信任定时器。 GB/T25931—2010/IEC61588:2009图K.1PTP安全报文处理199 GB/T25931—2010/IEC6158812009K.14.3挑战处理图K.2说明了对输入挑战报文的处理。挑战处理是对K.14.2中描述的一般输人报文处理的延续。输入挑战报文处理包括以下步骤:a)如果报文是一个challe“geRequest,则将输入SA的sa.resp。nseRequired成员设为TRUE,在该SA的sa.responseN。nce成员中保存requestNonee字段,并退出。b)如果报文是一个challengeResponse或challe“geResponseRequest,且输入SA的sa.challengeState不为CHAI。I。ENGING(即,该SA不期望一个响应),或者如果依据K.10的挑战一响应校验失败,则安静地丢弃报文。c)否则(成功的挑战一响应):1)将sa.trustState设为TRUSTED;2)将sa.challengestate设为IDLE;3)从AUTENTICATIONTLV将lifetimeld字段复制到输入SA的sa.1ifetimeld;4)从AUTENTICATIONTIⅣ将replayCounter字段复制到输入SA的sa.replayCounterl5)从SECURITY_ASSOCIATION—UPDATETLV将nextLifetimeld复制到由addressType选择的相关输入SA的sa.nextLifetimeld;6)从SECURITY_ASSOCIATION—UPDATETLV将nextKeyld复制到由addressType选择的相关输入SA的sa.nextKeyld;7)触发信任超时。d)如果挑战报文是响应请求,将输入SA的sa.responseRequired比特设为TRUE,并将requestNonee存储到输入SA的sa.responseNonce字段。e)丢弃报文并退出。200 GB/T25931—2010/[EC61588:2009图K.2挑战处理K.14.4安全传输处理图K.3说明输出PTP报文的附加处理。所有报文都附加AuTENTIcAl、lONTLv。要求按K.6计算1CV。步骤包括:a)将flagField.SECURE标志设为TRUE;b)附加AUTENTICATIONTLv1)从输出SA将8a.replayCounter复制到TLV的replayCounter字段;2)从输出SA将sa.1ifetimeId复制到TLV的lifetimeId字段;3)从输出SA将‰keyId复制到TI。v的keyId字段;4)从密钥列表数据集将对应于sa.keyld的k1.algorithmId复制到TLv的algorithmId字段。20l GB/T25931—2010/IEC61588:2009c)计算ICV,并将其放到AuTHENTIcATIoNTLv的ICV字段;d)将SA的sa.repIaycounter增加2;e)如果SA的sa.replayCounter翻转,则:1)将SA的sa.nextl。ifetimeld复制到sa.1ifetimeld字段;2)产生一个新的随机非零sa.nextI。ifetimeld。确保sa.nextI.ifetimeld值与sa.1ifetimeld值不同,否则,直到产生了一个不相等的值才产生非零随机值;3)将sa.replayCounter设为0。f)发送报文。图K.3安全传输处理K.14.5安全事件处理安全事件是处理超时和发送挑战报文的一个周期性事件。应以足够的频率触发安全事件来处理超时。至少应在判定事件进程每次被触发时,触发安全事件进程。要求安全事件进程原子性地执行,见3.1.2。图K.4说明对每个输入SA的安全事件处理步骤。输入SA的安全事件处理如下:a)如果Sgt.challengeState是CHAI。LENGING,且sa.challengeTimeout已经超时,将sa.chal—lengeState改为IDLE。b)如果sa.challengeState是IDI。E,且sa.challe“geRequired和sa.responseRequired比特均为TRUE,则:202 GB/T25931—2010/IEC61588:20091)从所有匹配的输出SA构建SECURITY—ASSOCIATION—UPDATETLv;2)产生随机sa.requestNonce;3)构建AUTHENTIcATIoN—CHALI,ENGETLv。将SA的sa.requestNonee复制至0TLV的requestNonce字段,将SA的sa.responseNonce复制到TI。V的responseNonce;4)将challengeType设为challengeResponseRequest,并发送报文;5)将sa.challengestate设为CHALLENGING。c)如果sa.challengeState是IDI,E,sa.ehallengeRequired比特为TRUE,且sa.responseRequired比特为FALSE,则:1)产生随机sa.requestNonce;2)构建AUTHENTICATION—CHALLENGETI。V。将SA的sa.requestNonce复制到TLV的requestNonce字段,将SA的sa.responseNonce复制到TLV的responseNonce;3)将challengeType设为chaIlengeRequest,并发送报文;4)将sa.challengeState设为CHALLENGING。d)如果sa.challengeState为cHALLENGING,且sa.responseRequired比特为TRUE;或sa.challengeState为IDLE,sa.responseRequired比特为TRUE,且sa.challengeRequired比特为FALSE,则:1)从所有匹配的输出SA构建SECURITY—ASSOCIATl0N-UPDATETI,v;2)构建AuTHENTIcATIoN—CHALLENGETLv。将TI。V的requestNonce字段设为0,将SA的sa.responseNonce复制到TI.V的responseNonce;3)将challengeType设为challengeResponseRequest,并发送报文。e)如果sa.trustTimeout到期,则设置sa.trustState为UNTRUSTED。f)设置sa.responseRequired和sa.challengeRequired比特为FALSE。g)退出。安全事件进程也应处理密钥到期、激活与续订。安全事件不应使密钥超时,除非它可以获取准确时间以允许它确定一个密钥是否即将到期或已经到期。一旦到达密钥的开始时间,安全事件进程应激活密钥。只要安全事件进程不能获取足够准确的时间,所有密钥就被激活。安全事件进程通过K.5中定义的安全联盟更新交换,保证输出SA在密钥到期前交换新的sa.keyld。当密钥即将到期时,或由于某些原因密钥需要被替代,则安全事件进程将输出SA的sa.nextKeyld复制到sa.keyld字段,并将sa.nextKeyld设为当前密钥到期时将要使用的密钥。203 GB/T25931--20IO/TEC6158812009图K.4安全事件处理K.14.6安全透明时钟处理规则本条详细描述要求的附加透明时钟处理规则以支持安全PTP通信。PTP透明时钟或是无安全意识的(security-unaware),或是有安全意识的(securityaware),或是有安全能力的(security_capable)时钟,定义如下。无安全意识的透明时钟忽略报文中的flagFie埘.SECURE标志的值。被一个无安全意识的透明时钟修改的安全PTP报文不能通过PTP接收方的ICV测试,并被安静地丢弃。在安全通信路径中,不可204 GB/T25931—2010/IEC6158812009采用无安全意识的透明时钟。有安全意识的透明时钟不修改flagField.SECURE标志为TRUE的PTP报文。根据网络的寻址规则转发PTP安全报文。有安全意识的透明时钟可以用在安全与非安全PTP通信共存的环境中(例如,通过不同的域)。有安全能力的透明时钟,如果defaultDS数据集defaultDS.secu“tyEnabled被设为TRUE时,可以参与PTP安全协议;或如果defauhDS.securjtyEnabled被设为FALSE时,可以作为一个有安全意识的时钟。要求有安全能力的透明时钟遵循安全协议处理规则,该规则适用于寻址到该透明时钟的以及由它发出的所有PTP报文。要求有安全能力的透明时钟遵循第10章与第11章中定义的透明时钟处理规则。另外,如果defaultDS.securityEnabIed被设为TRUE,要求遵循下列附加处理规则:a)如果flagField.SECURE标志为FALSE,则要求遵循透明时钟的常规的处理规则。下述进一步的处理规则适用于flagField.SECURE标志为TRUE的PTP报文。b)要求透明时钟对所有PTP事件报文执行K.6中定义的的ICV测试。如果ICV测试失败,则要求透明时钟安静地丢弃PTP报文。c)要求双步透明时钟执行Delay_Resp与Follow—Up报文的1CV测试。如果ICV测试失败,则要求透明时钟安静地丢弃PTP报文。d)要求按11.5.2.2产生Follow—Up报文的双步时钟,将Sync报文的安全AUTHENTICATl0NTLV复制到Follow_Up报文。要求双步时钟将AUTHENTICATIONTI。V的replayCDunter字段增加1。e)在透明时钟根据K.6中定义的程序完成修改PTP报文字段(correctionField、twoStepFlag等)后,要求它重新计算PTP报文的ICV值。要求透明时钟用已计算的正确ICV更新安全AUTHENTICATIONTI。V的lCV字段。另外,如果defaultDS数据集的defaultDS.securityEnabled属性为TRUE,则要求透明时钟不与一个主时钟谐振,除非它与那个时钟达到了完全信任的关系。不要求透明时钟支持出于安全驻留时间与路径延时校正目的的安全联盟数据集。要求有安全能力的透明时钟支持和维护仅用于管理、谐振与点到点报文收发的安全联盟。K.15AUTHENTICATIoNTLVK.15.1概述要求将AUTHENTICATIONTLV附加到flagField.SECURE标志被置位的所有PTP报文(见表K2)。要求按本条定义来确定TI.V的字段值。要求发送时将保留字段设为0,并在接收时将其忽略。表K.2AUTHENTIcATl0NTLV比特八位位组7654321OtlvType=AUTHENTICATION2lengthField2lifetimeld2replayCounter4keyld2algorithmld1保留l填充MICV(完整性校验值)N GB/T25931—2010/IEC6158812009K.15.2tlvTypetlvType的值为AUTHENTICATl0N。K.15.3lengthFieldTLV的长度取决于ICV和填充长度。对本标准中定义的所有扩展,长度是26(十进制)。K.15.4lifetimeId(UInteger16)lifetimeId是由SA确定的一个固定数。lifetimeld作为重放保护机制的一部分被校验。要求不将lifetimeld设为0。K.15.5replayCounter(UInteger32)对每个通过SA发送的包,将replayCounter增加2。replayCounter作为重放保护机制的一部分被校验。K.15.6keyId(UInteger16)密钥标识符(keyId)字段用来选择在许多共享密钥中可能使用哪一个。K.15.7algorithmId(UInteger8)要求algorithmId的可能值取自表K.3的枚举。表K.3algorithmld值algorithmId值(十六进制)NULLOHMAC—SHAl—961HMAC—SHA256—962保留3~80实现特定的8l~FF要求所有支持安全扩展的PTP节点支持HMACl一SHAl—96算法。HMAC处理在NISTSHS[B20]和NISTHMACEB21]中定义。它定义了输出截取与填充过程。SHAl与SHA256都使用大小为512比特的块。在散列计算开始前报文用值为零的字节进行填充,以保证被填充的报文是512比特的倍数。SHAl的输出从160比特截取为96比特,SHA256的输出从256比特截取为128比特,以产生ICV值。截取选择所产生散列的最左边的比特。NULL算法不提供完整性保护,仅出于测试目的而定义。对于NULL算法,ICV字段长度为0。K.15.8填充(OctetEM])要求将填充字段的值设为0,且接收时将其忽略。填充字段长度M依据表K.4所列的algorith—mid。注:填充字段长度的选择使得,对于1EC61588标准本版本中定义的所有algorithmId,AUTHENTICATIONTLV长度是固定的。固定长度的AUTHENTICATIONTI.V方便硬件实现。然而,未来的algorithmld可以定义“和”不为该固定长度的ICV和填充长度。K.15.9ICV(OctetEN])计算ICV值的方法在K.6中规定。ICV长度N依据表K.4所列的algorithmld。表K.4ICV和填充长度algorithmldIcV长度(字节)填充长度(qz节)NULLO16HMAC—SHAl—96124HMAC—SHA25612816O206 K.16AUTHENTICATIoN—CHALLENGETLVGB/T25931—2010/IEC6158812009K.16.1概述AUTHENTICATION—CHAI,LENGETLV用于认证挑战一响应交换。表K.5说明了该扩展。要求AuTHENTIcATl0N—CHAI。I。ENGETI。V在信号报文中发送。要求将AUTHENTICATION—CHAI,LENGETI.V附加为报文中的第一个TI。V。表K.5AUTHENTICATION_cHALLENGETLV比特八位位组76s。sz1OtlvType--AUTHENTICATION—CHALLENGE2lengthField2challengeType1保留1requestNonce4responseNonce4K.16.2tlvTypetlvType字段为AUTHENTICATION—CHALLENGE。6.3lenghtFieldIenghtField值为14。K.16.4challengeType(UInteger8)要求challengeType的可能值取自表K.6的枚举。表K.6challengeType值challengeType值(十六进制)challengeRequestOchallengeResponseRequestlchaIlengeResponse2保留3~FFK.16.5requestNonce(UInteger32)requestNonce是由挑战一请求或挑战一响应一请求的发送方产生的一个随机数。requestNonce在挑战一响应报文中应设为0。K.16.6responseNonce(UInteger32)挑战响应方将challengeRequest和challengeResponseRequest报文中的requestNonce,复制到挑战响应一请求和challengeResponse中的responseNonce。challengeRequest报文中的responseNonce被设为0。K,17SECURITY—ASSoCIATJONUPDATETLVK.17.1概述SECURITY—AssOcIATION—UPDATETLV用于传输安全联盟的lifetimeld值,一旦当前安全联盟的重放计数器发生翻转时则使用该lifetimeld值。nextKeyld在密钥一旦被替代时使用。要求在挑战一响应和挑战一响应一请求的信号报文中发送安全联盟更新TLV。该TLV可用于传递与所有地址.207 GB/T25931—2010/IEC61588:2009(单播、多播和p一延时多播)相关的更新的安全联盟;或者如果挑战响应方维护不同的输出安全联盟,则为一个特定地址传递安全联盟更新信息。在同一个报文中可以发送几个TLV,每个TLV为一个特定地址提供更新的SA。表K.7说明了该扩展。要求在发送时将保留字段设为0,接收时将其忽略。表K.7SECURITY_ASSOCIATION—lJPDATETLv比特八位位组7654。z-0tlvType—SECURITY-ASSOCIATION—UPDATE2lengthField2addressType1保留1nextKeyId2nextI,ifetimeId2K.17.2tlvTypetlvType字段为SECURITY—ASSOCIATION—UPDATE。K.17.3lengthField1engthField值为0。K.17.4addre∞Type(UInteger8)要求addressType的可能值取自表K.8的枚举。表K.8addre∞Type值addressType值(十六进制)所有的O多播1P一多播2单播3保留4~FFK.17.5nextKeyld(UInteger16)一旦当前密钥到期或被取代时,nextKeyId指示输出安全联盟将要使用的密钥。nextKeyld用来更新输入安全联盟。K.17.6nextLifetimeld(UInteger16)一旦当前输出安全联盟的重放计数器发生翻转时,nextLifetimeId指示输出安全联盟将要使用的lifetimeId。nextLifetimeId用来更新输人安全联盟。208 L1概述GB/T25931—2010/IEC61588:2009附录L(资料性附录)累积频标因子偏移的传输(实验性)本附录定义了实验性的累积频标因子偏移的PTP扩展,见14.2。由于本附录不是规范性附录,不使用术语“应”来表示要求,而使用“要求”代替。为了在PTP将来版本中本附录成为规范性时能正确实现本扩展,建议本扩展的实现者将本附录中的“要求”解释为“应”。在一些补偿方案中,不是直接调整边界时钟的相位,而是通过减少相位和频率误差的方式来调整频率。边界时钟使用它从主时钟接收到的连续的时间戳来计算频标因子;特别地,使用主时钟发送每个时间戳(originTimestamp或preciseOriginTimestamp)的时间,以及它接收每个时间戳的时间。通过使用该信息,相对于主时钟计算频标因子。然而.如果边界时钟也知道相对于其最高级时钟的累积频标因子,就可以减小在边界时钟所累积的相位误差。本条规定了一个可选的TLv,它可被用于从边界时钟到其从时钟之间传输累积频标因子信息。特别地,TLV积累了频标因子同1之间的累积差。频标因子偏移是指频标因子同1之间的差;累积频标因子偏移是指频标因子偏移在多个边界时钟跳的累积。2使用累积频标因子的频率补偿方案的描述Balasubramanian等[B3]详细描述了频率一种补偿方案,该方案使用频标因子(frequencyScaleFactor>。每个相继的边界时钟节点在各个syncInterval计算一个频率补偿值,如下:freqCompensationValuek.o一1freqCompensationValuek,。一Fk,。×freqCompensationValuek.。一1⋯⋯⋯⋯(I。.1)其中,Fm为节点k在syncIntervaln计算出的(frequencyscaleFactor)。调整频率,即补偿频率通过自由运行的本地振荡器频率乘以当前(freqCompensationValue>而得到。Fkn的计算见I⋯3Wang等[B25]指出,使用本补偿方案的一串边界时钟的相位误差累积可通过2种途径大大缩减:(1)在相继的边界时钟对之间同步报文交换,使得在主时钟同步到它的主时钟之后,从时钟立刻同其主时钟交换报文并同步;(2)使用(cumulativeFrequencyScaleFactor>而非来得到补偿的频率。(cumulativeFrequencyScaleFactor>,即F⋯,kn,由下式计算(注意,累积是对一串节点而不是时间上的累积):F。。,k,。一F⋯,k1,。×Fk。⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯(L.2)最高级时钟的被定义为(frequencyscaleFactor>同1之间的差,见公式(I,.4)。瓯。一Fk。一1Fk.。一1—}8k.。⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯(I。.4)把公式(L.4)带入公式(L.3),并有8kn《1(即(frequencyscaleFactor)同l非常接近,这可通过I。.3中的公式(I。.6)或公式(L.8)来减小),累积频标因子可按公式(L.5)写为:kF⋯,¨兰l+∑瓯.。⋯⋯⋯⋯⋯⋯⋯一(L.5)】=1公式(L.5)说明了(cumulativeFrequencyScaleFactor>可通过频标因子偏移的累积和(而不是频标209 GB/T25931—2010/IEC51588:2009因子的累积和)获得。累积和的计算量较小,并通过L4规定的cUM—FREQ—SCALE—FACTOR—OFFSETTI.V进行传递和累积。L.3累积频标因子偏移的通用规范如果一个边界时钟和其主时钟实现了此TLV,则在接收到附在Sync或者Follow—Up报文上的TI。v时,要求该边界时钟计算它的频标因子偏移。如果该TI,V附在Sync报文上,则(frequencyScaleFactorOffset)是在接收每个Sync报文时进行计算的(由于本条中的所有变量都是参考同一节点,因此为简化而省略节点序号k),如公式(I。.6)和公式(L.7)所示:F。一鱼[且单土旱d生』立12.n——J2.|卜1(L.6)d。一F。一1⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯(L.7)其中:8。为接收第n个Sync报文的;T1n为包含在第n个Sync报文的originTimestamp;T。.。为接收第13个Sync报文的时间戳;d。为如下两项之和:——接收第n个Sync报文路径上的当前(即第n个Sync报文的接收时刻)测量的传输时间;——第n个Sync报文的correctionField。如果TLv附在Follow—Up报文上,(frequencyscaleFactoroffset>是在接收每个Follow—Up报文时进行计算的,如公式(L.8)和公式(L.9)所示:F。一堕[且≠坐粤±心12.nJ2.T卜1(L.8)8。一F。一1⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯(L.9)其中:a。为接收第n个Follow_Up报文的设为如上计算的8。。注:如果一个边界时钟未实现此TLV,则它仍可使用补偿方案,该补偿方案不使用