PTP 报文

  PTP verision 2 报文是由 报头 / header主体 / body 和 报尾 / suffix 组成,报尾长度可能为 0 ;

  PTP verision 2 报文在 verision 1 的 五种报文(sync 同步报文、follow_up 跟随报文、delay_req 延迟请求报文、delay_resp 延迟响应报文 和 management 管理报文)的基础上,

  增加了点延迟机制( peer-delay mechanism )中的 三种报文( Pdelay_req 报文、Pdelay_resp 报文 和 Pdelay_resp_Follow_up 报文 )signaling 信号报文announce 声明报文 这五种新报文;

  根据报文收发过程中,是否需要记录精确时间戳 分为 事件报文 / 通用报文

PTP 报头结构

表 1 PTP 报头的帧结构 [1]

  为了方便直观的理解,我绘制了图1,内容和结构都和 表 1 一致;

  offset 是距离报文首字节的偏移量,单位是 octet;

  >>> 1个 octet = 8 个 bits 

  reserved 是保留域,默认为 0;

图 1 PTP 报头结构

  介绍 PTP 报文报头中一些域:

  (1)messageType,【报文类型】( 0.5 个 octet = 4 bits),不同的值代表不同的PTP报文

  (2)versionPTP,【PTP版本】,(0.5 个 octet = 4bits ),PTP version1的话此处值为1,PTP version 2 的话此处值为 2

        “The value of the versionPTP field shall be the value of the portDS.versionNumber member of the data set of the originating node."

  (3)domainNumber,【PTP域序列号】,(1 个 octet = 8 bits ),对于普通时钟和边界时钟,此处值为数据集中 defaultDS domainNumber 这个变量

        "For ordinary or boundary clocks, the value of domainNumber shall be the value of the defaultDS.domainNumber member of the data set of the originating ordinary or boundary clock."

  (4)flagField,【标志域】,( 2 个 octets = 16 bits ),典型的如二步标志域(twoStepFlag)为 1 表示是二步模式,即同步报文之后有跟随报文     

  (5)correctionField,【修正域】,( 8 个 octets = 64 bits ),传送透明时钟的驻留时间、点对点透明时钟的链路延时以及非对称补偿

        "The correctionField is the value of the correction measured in nanoseconds and multiplied by 216. For example, 2.5 ns is represented as 000000000002800016"

  (6)sourcePortIdentity,【源端口号】,( 10 个 octets = 80 bits ),发送端口的相关属性     

       “The value of the sourcePortIdentity field shall be the value of the portDS.portIdentity member of the dataset of the port that originated this message.”

  (7)sequenceID,【序列号】,( 2 个 octets = 16 bits ),为了区分多条发送端口相同的同一类型的报文

  (8)controlField,【控制域】,( 1 个 octet = 8 bits ),此处的值由报文类型域的值决定,即根据报文类型不同取值不同

  (9)logMessageInterval,【对数报文时间间隔】,( 1 个 octet = 8 bits ),包括发送声明报文的对数时间间隔,发送同步报文的对数时间间隔,发送延迟请求响应报文的对数时间间隔,它们的值是以2为底取的对数

PTP报文介绍

  主要介绍 sync 同步报文delay_req 延迟请求报文follow_up 跟随报文 和 delay_resp 延迟响应报文 四种报文的报文主体 body 部分。

  1)sync 同步报文 & delay_req 延迟请求报文

    两种报文具有相同的报文主体,originTimeStamp 时间戳都是由历元,秒数和纳秒数构成的 80bits 时间戳信息

图 2 sync 同步报文 & delay_req 延迟请求报文的报文主体结构 [1] 

  2) follow_up 跟随报文

图 3 follow_up 跟随报文的报文主体结构 [1] 

  3)delay_resp 延迟响应报文

图 4 delay_resp 延迟响应报文的报文主体结构 [1] 

PTP报文封装方式

  PTP报文封装方式分为:PTP over UDP over IPv4、PTP over UDP over IPV6、PTP over UDP over IPV6、PTP over IEEE 802.3 / Ethernet 等承载方式。

 

  1. PTP over UDP over IPv4 (IEEE1588 Standard Annex D

    以太网帧类型域值(Ethertype)为 0x0800,检查 IPv4 报文类型域,若为 0x11 说明上层数据为 UDP 数据报文,再检查 UDP 目的端口号,若为 319/320 则为 PTP 报文;

    四层实现(也称为三层实现或者应用层实现),能够跨 IP 网段,可以支持 E2E 和 P2P;   

    "The first octet of the PTP message shall occupy the first octet of the client data field";

    使用 UDP 协议和以太网协议 version 4( IPv4 )完成 PTP 报文的封装,封装流程如下:

      1). 在应用层中 PTP 报文被应用程序填充后发送;

      2). 在传输层将 PTP 报文加 UDP 报头封装成 UDP 报文;

      3). 在网络层加入 IPv4 的 IP 报头,封装成 IP 报文;

      4). 在数据链路层中封装成以太帧传输;

     

图 5 以 PTP over UDP over IPv4 方式封装 PTP 报文

  2. PTP over UDP over IPv6 (IEEE1588 Standard Annex E)

    此方法与前一种方法没有什么大的差异,只不过加装 IP 报头时以 IPv6 为准。

  3. PTP over IEEE 802.3/Ethernet (IEEE1588 Standard Annex F)

    此方法的以太网帧类型域值(Ethertype)为 0x88F7;

    两层实现,两层以太数据包,只能在一个局域网( MAC 地址广播范围之内)起作用,只支持 P2P;

    

图 6 以 PTP over IEEE802.3 / Ethernet 方式封装 PTP 报文

图 7 PTP over UDP over IP 方式封装 PTP 报文的具体方式

[1] IEEE Standard for a precision clock synchronization protocol for networked measurement and control systems. New York:IEEE,2008

# 请尊重他人劳动成果,转载或者使用源码请注明出处:http://www.cnblogs.com/AdaminXie

# 如有问题请留言或者联系邮箱 coneypo@foxmail.com

IEEE1588 verision 2 报文介绍的更多相关文章

  1. IEEE1588 verision2 报文介绍

    PTP报文 PTP verision2报文是由 报头,主体 和 报尾 (header, body, and suffix)组成,报尾长度可能为0. PTP verision2报文在verision1的 ...

  2. Http报文 状态码

    一.HTTP报文 1.HTTP报文介绍 HTTP报文:用于HTTP协议交互的信息. HTTP报文由报文头部和报文主体(非必须)构成,中间由空行来分隔. 1.1 请求报文:客户端发起的报文. 1).报文 ...

  3. HTTP/1.1报文详解

    本文为<三万长文50+趣图带你领悟web编程的内功心法>第三个章节. 3.HTTP/1.1报文详解 在RFC2616中心详细的描述了HTTP/1.1[1]的报文,感兴趣的朋友也可以前往阅读 ...

  4. 【干货分享】前端面试知识点锦集04(Others篇)——附答案

    四.Others部分 技术类 1.http状态码有哪些?分别代表是什么意思? (1).成功2×× 成功处理了请求的状态码.200 服务器已成功处理了请求并提供了请求的网页.204 服务器成功处理了请求 ...

  5. [计算机基础]HTTP协议学习笔记

    HTTP:Hypertext transfer protocol超文本传输协议是一种详细规定了浏览器和Internet之间互相通信的规则 HTTP允许传输任意类型的数据对象,由Content-Type ...

  6. SpringMVC自定义配置消息转换器踩坑总结

    问题描述 最近在开发时候碰到一个问题,springmvc页面向后台传数据的时候,通常我是这样处理的,在前台把数据打成一个json,在后台接口中使用@requestbody定义一个对象来接收,但是这次数 ...

  7. HTTP服务及状态码

    第一章 HTTP 1.1 HTTP协议的概念 HTTP协议,全称HyperText Transfer Protocol,中文名为超文本传输协议,是互联网上常用的通信协议之一,它有很多的应用.但是流行的 ...

  8. 在C#客户端用HTTP上传文件到Java服务器

    在C#客户端用HTTP上传文件到Java服务器  来源:http://www.cnblogs.com/AndyDai/p/5135294.html 最近在做C / S 开发,需要在C#客户端上传文件到 ...

  9. SSL&TlS握手

    SSL/TLS简介 •SSL:安全套接字层(secure socket layer) •TLS:传输层安全协议(transport layer security) SSL和TLS都是加密协议,旨在基于 ...

随机推荐

  1. 关于前端惰性加载(jquery_lazyload)的使用和原理分析

    1.前言 有时我们会有这样的需求,当网页有很多张图片的时候,我们不希望一次性就把图片加载完,而是希望当浏览器滑动到指定位置的时候再加载,这样可以节省带宽,它也能帮助减轻服务器负载.那么这种需求就需要利 ...

  2. 虚机的SQL Server空间占满之后进行释放的一些操作

    用了好几年的一个虚机,数据库是SQL Server 2008,配额500M. 今天忽然发现无法录入数据,登录后台一看,原来是数据库容量满了. 很久没用SQL Server了,找到一段之前用过的收缩数据 ...

  3. ASP.NET web api 跨域请求

    1.学习文章:AJAX 跨域请求 - JSONP获取JSON数据 1.asp.net代码 参考文章:http://www.sxt.cn/info-2790-u-756.html (1).增加CorsH ...

  4. [luogu1081] 开车旅行

    题面 ​ 这个题目还是值得思考的. ​ 看到这个题目, 大家应该都想到了这样一个思路, 就是把每个点能够达到的最近的和次近的点都预处理出来, 然后跑就可以了, 现在问题就是难在这个预处理上面, 我们应 ...

  5. Solr服务在Linux上的搭建详细教程

    一.系统环境 注:欢迎大家转载,非商业用途请在醒目位置注明本文链接和作者名dijia478即可,商业用途请联系本人dijia478@163.com. CentOS-6.7-i386-bin-DVD1 ...

  6. CentOS7.2安装mysql

    1. 下载Mysql yum包 http://dev.mysql.com/downloads/repo/yum/ 复制链接使用wget下载 wget http://repo.mysql.com/mys ...

  7. ROS——rqt

    $ rosrun rqt_plot rqt_plot   # 画出发布在topic上的数据变化图 $ rosrun rqt_graph rqt_graph #画出node关系图 $ rosrun rq ...

  8. winform程序打包成exe文件

    拿到一个实现功能的winform小程序,如何利用NSIS工具制作安装包? 1.NSIS工具下载地址 点我下载 2.启动NSIS工具,如图点击 3.选择"使用脚本向导创建新的脚本文件" ...

  9. Spring源码分析(十四)从bean的实例中获取对象

    摘要:本文结合<Spring源码深度解析>来分析Spring 5.0.6版本的源代码.若有描述错误之处,欢迎指正. 在getBean方法中,getObjectForBeanlnstance ...

  10. P1414 又是毕业季II

    题目描述 彩排了一次,老师不太满意.当然啦,取每位同学的号数来找最大公约数显然不太合理.于是老师给每位同学评了一个能力值.于是现在问题变为,从n个学生中挑出k个人使得他们的默契程度(即能力值的最大公约 ...