成长值: 62305
|
网络协议报文格式大全
http://bbs.hh010.com/thread-531884-1-1.html
(出处: 鸿鹄论坛)
1588v2(PTP)报文通用格式IEEE 1588v2协议附录D定义了1588V2 over IPv4的报文封装,附录E定义了1588V2 over IPv6的报文封装,附录F定义了1588v2 over IEEE 802.3 /Ethernet的报文封装。其他如1588v2 over MPLS封装,业界还没有成熟的标准。除此之外,在实际应用中还可能携带VLAN。 - PTP over Ethernet
- PTP over UDP over IPv4
- PTP over UDP over IPv6
- PTP over MPLS
PTP通用消息格式PTP General Message Format以太封装的PTP (Precision Timing Protocol)报文,其帧头中以太类型值=0x88F7。 图1 以太封装PTP报文 PTP over Ethernet
IPv4封装PTP报文,EVENT消息头的UDP目的端口号是319,General消息的UDP目的端口号是320。 图2 IPv4封装PTP报文 Format of PTP packet over UDP over IPv4
PTP消息头格式 Format of a PTP header1588v2消息必须包含消息头、消息体和消息扩展字节,扩展字节长度可能为0。
字段 | 长度 | 含义 | TranSpec | 4比特 | 传送相关。- 0表示PTP消息由1588协议使用
- 1表示PTP消息由802.1as协议使用
| MsgType | 4比特 | 表示消息类型。1588V2消息分为两类:事件消息(EVENT Message)和通用消息(General Message)。事件报文是时间概念报文,进出设备端口时需要打上精确的时间戳,而通用报文则是非时间概念报文,进出设备不会产生时戳。类型值0~3的为事件消息,8~D为通用消息。 - 0x00: Sync
- 0x01: Delay_Req
- 0x02: Pdelay_Req
- 0x03: Pdelay_Resp
- 0x04-7: Reserved
- 0x08: Follow_Up
- 0x09: Delay_Resp
- 0x0A: Pdelay_Resp_Follow_Up
- 0x0B: Announce
- 0x0C: Signaling
- 0x0D: Management
- 0x0E-0x0F: Reserved
| Reserved | 4比特 | 保留字段。 | VerPTP | 4比特 | 表示1588协议的版本。 | MsgLength | 2字节 | PTP消息的长度,即PTP消息的全部字节数目。计入字节始于报头的第一个字节,同时包含并收尾于任何尾标的最后一个字节,或是无尾标成员时收尾于消息的最后一个字节。 | DomainNumber | 1字节 | 域编号,表示发送该消息时钟所属的域。 | Reserved | 1字节 | 保留字段。 | FlagField | 2字节 | 标志域。取值请参见表2。 | CorrectionField | 64比特 | 修正域,各报文都有,主要用在Sync报文中,用于补偿网络中的传输时延,E2E的频率同步。 | Reserved | 32比特 | 保留字段。 | SourcePortIdentity | | 源端口标识符,发送该消息时钟的ID和端口号。 | SequenceID | 2字节 | 序列号ID,表示消息的序列号,以及关联消息的对应关系。 | ControlField | 1字节 | 控制域,由消息类型决定:- 0x00:Sync
- 0x01:Delay_Req
- 0x02:Follow_Up
- 0x03:Delay_Resp
- 0x04:Management
- 0x05:All others
- 0x06-0xFF:reserved
| LogMsgInterval | 1字节 | 录入消息周期,PTP消息的发送时间间隔,由消息类型决定。 | PTP Specified Message Field | 变长 | PTP消息体和消息扩展字节。 |
表1 flagField的取值
字节 | 比特位 | 消息类型 | 消息名 | 说明 | 0 | 0 | Announce, Sync, Follow_Up, Delay_Resp | alternateMasterFlag | 如果发送侧端口处于MASTER状态,则为FALSE。 | 0 | 1 | Sync, Pdelay_Resp | twoStepFlag | 对于一步时钟,twoStepFlag取值要求为FALSE。对于双步时钟,twoStepFlag取值要求为TRUE。 | 0 | 2 | ALL | unicastFlag | 如果此消息发送到的传送层协议地址是一个单播地址,则置为TRUE。如果此消息发送到的传送层协议地址是一个多播地址,则置为FALSE。 | 0 | 5 | ALL | PTP profile Specific 1 | 由一个备选PTP模板定义;否则置为FALSE。 | 0 | 6 | ALL | PTP profile Specific 2 | 由一个备选PTP模板定义;否则置为FALSE。 | 0 | 7 | ALL | Reserved | 此比特保留用于实验性安全机制. | 1 | 0 | Announce | leap61 | - | 1 | 1 | Announce | leap59 | - | 1 | 2 | Announce | currentUtcOffsetValid | - | 1 | 3 | Announce | ptpTimescale | - | 1 | 4 | Announce | timeTraceable | - | 1 | 5 | Announce | frequencyTraceable | - |
参考标准
标准 | 描述 | IEEE 1588 V2 | Precision Clock Synchronization Protocol for Networked Measurement and Control Systems | IEEE P1588™ D2.2 | Draft Standard for a Precision Clock Synchronization Protocol for Networked Measurement and Control Systems |
|
|