计算机中报文的报尾用于,IEEE1588 verision2 报文介绍

2024-02-01 08:30

本文主要是介绍计算机中报文的报尾用于,IEEE1588 verision2 报文介绍,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

PTP报文

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

PTP verision2报文在verision1的五种报文(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]

f67cd3be41199444be89a86ba20fd0de.png

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

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

1个octet=8个bits;

reserved是保留域,默认为0;

1f303a6b07cd1bb09a47403fa12d5257.png

图1 PTP报头结构

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

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

(2)versionPTP,【PTP版本】,(0.5个octet=4bits),PTP version1的话此处值为1,PTP version2的话此处值为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=8bits),对于普通时钟和边界时钟,此处值为数据集中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=16bits),典型的如二步标志域(twoStepFlag)为1表示是二步模式,即同步报文之后有跟随报文

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

"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=80bits),发送端口的相关属性

“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=16bits),为了区分多条发送端口相同的同一类型的报文

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

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

PTP报文介绍

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

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

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

bed68f5951bb7e4b037a6c6d345d6c9f.png

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

2) follow_up跟随报文

3060522cea53ed4603ad5f7660efa10a.png

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

3)delay_resp延迟响应报文

cd3319c7f2af030feda77f2f2828302c.png

图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协议和以太网协议version4(IPv4)完成PTP报文的封装,封装流程如下:

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

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

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

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

6b4c989756b6910956c3cc3f734a46bb.png

图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;

03f80f5057cb9fd1084e19e9f0ac9bd6.png

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

8ba253f26a00f9a59d7dfb3355afe443.png

图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

note:

*以上内容均由本人从论文以及网上资料整理

*未经标注的图片均为本人自己绘制,转载引用请注明出处,尊重原创,谢谢

*自己也是最近开始学习接触到IEEE1588相关知识,认识难免会出现理解错误和一些其他问题,欢迎指正和讨论IEEE1588 verision 2 报文介绍

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

Http报文 状态码

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

HTTP/1.1报文详解

本文为第三个章节. 3.HTTP/1.1报文详解 在RFC2616中心详细的描述了HTTP/1.1[1]的报文,感兴趣的朋友也可以前往阅读 ...

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

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

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

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

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

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

HTTP服务及状态码

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

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

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

SSL&TlS握手

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

随机推荐

flash wmode参数详解

在做web开发中可能会遇到flash遮挡页面中元素的情况,无论怎么设置flash容器和层的深度(z-index)也无济于事,现有的解决方案是在插入flash的embed或object标签中加入”wmo ...

PagerSlidingTabStrip 高亮选中标题

1.选中标题后,高亮标题@Override public void onPageSelected(int position) { setSelectTextColor(position); if (d ...

android 读取用户号码,手机串号,SIM卡序列号

简介: IMSI:international mobiles subscriber identity国际移动用户号码标识,这个一般大家是不知道,GSM必须写在卡内相关文件中:MSISDN:mobile ...

学习完毕-css

最近零零散散学习了css 最后附带链接,里面有css的全部demo.有空的可以练习练习,下一步 --->js -----http://www.w3cschool.cc/css/css-examp ...

jave学习1--基础介绍

java 技术主要分为三个部分: jave SE基础知识. 对于各个程序的开发语言都包含的基本数据类型,循环控制,数组,方法等. jave SE的面向对象部分. 所有的面向对象的概念,为最终的接口准备 ...

Win 7 家庭普通版系统升级密钥

VQB3X-Q3KP8-WJ2H8-R6B6D-7QJB7 (高级版)FJGCP-4DFJD-GJY49-VJBQ7-HYRR2 (旗舰版)要先升级到高级版再升级旗舰版,不然(可能)会出错.

为springboot项目添加springboot-admin监控

我们知道spring-boot-actuator暴露了大量统计和监控信息的端点,spring-boot-admin 就是为此提供的监控项目. 先来看看大概会提供什么样的功能 从图中可以看出,主要内容都 ...

Struts hibernate Spring 框架原理

转自:http://www.cnblogs.com/javaNewegg/archive/2011/08/28/2156521.html 原理:1.通过Configuration().configur ...

Tomcat 性能优化(连接数、线程、JVM、dir)

Tomcat的server.xml中Context元素的以下参数应该怎么配合适

这篇关于计算机中报文的报尾用于,IEEE1588 verision2 报文介绍的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/666678

相关文章

性能测试介绍

性能测试是一种测试方法,旨在评估系统、应用程序或组件在现实场景中的性能表现和可靠性。它通常用于衡量系统在不同负载条件下的响应时间、吞吐量、资源利用率、稳定性和可扩展性等关键指标。 为什么要进行性能测试 通过性能测试,可以确定系统是否能够满足预期的性能要求,找出性能瓶颈和潜在的问题,并进行优化和调整。 发现性能瓶颈:性能测试可以帮助发现系统的性能瓶颈,即系统在高负载或高并发情况下可能出现的问题

水位雨量在线监测系统概述及应用介绍

在当今社会,随着科技的飞速发展,各种智能监测系统已成为保障公共安全、促进资源管理和环境保护的重要工具。其中,水位雨量在线监测系统作为自然灾害预警、水资源管理及水利工程运行的关键技术,其重要性不言而喻。 一、水位雨量在线监测系统的基本原理 水位雨量在线监测系统主要由数据采集单元、数据传输网络、数据处理中心及用户终端四大部分构成,形成了一个完整的闭环系统。 数据采集单元:这是系统的“眼睛”,

Hadoop数据压缩使用介绍

一、压缩原则 (1)运算密集型的Job,少用压缩 (2)IO密集型的Job,多用压缩 二、压缩算法比较 三、压缩位置选择 四、压缩参数配置 1)为了支持多种压缩/解压缩算法,Hadoop引入了编码/解码器 2)要在Hadoop中启用压缩,可以配置如下参数

图神经网络模型介绍(1)

我们将图神经网络分为基于谱域的模型和基于空域的模型,并按照发展顺序详解每个类别中的重要模型。 1.1基于谱域的图神经网络         谱域上的图卷积在图学习迈向深度学习的发展历程中起到了关键的作用。本节主要介绍三个具有代表性的谱域图神经网络:谱图卷积网络、切比雪夫网络和图卷积网络。 (1)谱图卷积网络 卷积定理:函数卷积的傅里叶变换是函数傅里叶变换的乘积,即F{f*g}

计算机毕业设计 大学志愿填报系统 Java+SpringBoot+Vue 前后端分离 文档报告 代码讲解 安装调试

🍊作者:计算机编程-吉哥 🍊简介:专业从事JavaWeb程序开发,微信小程序开发,定制化项目、 源码、代码讲解、文档撰写、ppt制作。做自己喜欢的事,生活就是快乐的。 🍊心愿:点赞 👍 收藏 ⭐评论 📝 🍅 文末获取源码联系 👇🏻 精彩专栏推荐订阅 👇🏻 不然下次找不到哟~Java毕业设计项目~热门选题推荐《1000套》 目录 1.技术选型 2.开发工具 3.功能

C++——stack、queue的实现及deque的介绍

目录 1.stack与queue的实现 1.1stack的实现  1.2 queue的实现 2.重温vector、list、stack、queue的介绍 2.1 STL标准库中stack和queue的底层结构  3.deque的简单介绍 3.1为什么选择deque作为stack和queue的底层默认容器  3.2 STL中对stack与queue的模拟实现 ①stack模拟实现

Mysql BLOB类型介绍

BLOB类型的字段用于存储二进制数据 在MySQL中,BLOB类型,包括:TinyBlob、Blob、MediumBlob、LongBlob,这几个类型之间的唯一区别是在存储的大小不同。 TinyBlob 最大 255 Blob 最大 65K MediumBlob 最大 16M LongBlob 最大 4G

FreeRTOS-基本介绍和移植STM32

FreeRTOS-基本介绍和STM32移植 一、裸机开发和操作系统开发介绍二、任务调度和任务状态介绍2.1 任务调度2.1.1 抢占式调度2.1.2 时间片调度 2.2 任务状态 三、FreeRTOS源码和移植STM323.1 FreeRTOS源码3.2 FreeRTOS移植STM323.2.1 代码移植3.2.2 时钟中断配置 一、裸机开发和操作系统开发介绍 裸机:前后台系

nginx介绍及常用功能

什么是nginx nginx跟Apache一样,是一个web服务器(网站服务器),通过HTTP协议提供各种网络服务。 Apache:重量级的,不支持高并发的服务器。在Apache上运行数以万计的并发访问,会导致服务器消耗大量内存。操作系统对其进行进程或线程间的切换也消耗了大量的CPU资源,导致HTTP请求的平均响应速度降低。这些都决定了Apache不可能成为高性能WEB服务器  nginx:

多路转接之select(fd_set介绍,参数详细介绍),实现非阻塞式网络通信

目录 多路转接之select 引入 介绍 fd_set 函数原型 nfds readfds / writefds / exceptfds readfds  总结  fd_set操作接口  timeout timevalue 结构体 传入值 返回值 代码 注意点 -- 调用函数 select的参数填充  获取新连接 注意点 -- 通信时的调用函数 添加新fd到