书非借而不能读也!
为了提高效率,现在参考了某网友的(忘记来源了)相关文章。

【SOMEIP报文格式部分字段概述】

【Message ID】
Message ID是一个32位标识符,用于将RPC调用分派给应用程序的method并识别event 。 Message ID必须能唯一标识service的method或event。
Message ID的分配取决于用户; 然而,对于整个系统(即车辆),消息ID必须是唯一的。 消息ID可以与CAN ID进行比较,并且应该使用类似的过程进行处理。

 为了构造不同的method, event和field ,它们被聚集到service中。 service具有一组method , event和field以及services ID,该ID仅用于此service。
Service-ID应该是16位长度无符号整数(uint16)。  Service-ID=0xFFFE用来编码非SOME / IP服务。同一车辆内的不同服务应具有不同的Service-ID。
Method和event应在service内部使用16位Method ID来识别,对Event和notification来说,称为Event ID。

【Request ID】
Request ID允许客户端区分相同的Method的多个call 。 Request ID对于客户端和服务器的一个组合来说,需要时唯一的。 在生成响应消息时,服务器必须将请求中的Request ID复制到response消息中。 这允许客户将响应映射到发出的请求,即使有多个请求未完成。
只要响应已经接收到或者不再期望这个响应(超时),就可以重新使用Request ID。 在汽车使用案例中,只有很少数量的未完成的请求在被继续等待。 小型系统里在没有并行请求的可能性的情况下, Request ID可能总是设置为相同的值。
在AUTOSAR 架构下, Request ID需要结构化。 即使对于非AUTOSAR系统,也需要对调用者的客户端ID进行编码。
Request ID包含Client ID 和Session ID。
ECU的实施者可以按照他的实施要求来定义Client ID,并且服务器不需要知道这个布局或定义,因为他只是将整个Request-ID复制到Response中。
Client ID是ECU内Call客户端的唯一标识符。 Session ID是客户端为每个call选择的唯一标识符。 如果不需要进行Session处理,则Session ID应设置为0x0000。
Client ID还应通过具有可配置前缀或固定值支持其在整个车辆中唯一性(例如,Client ID的最高位是诊断地址或为特定应用程序/SWC配置专门Client ID)。
注意: Client ID不用于Service Discovery。
Request/Response method需要使用以ID以0x0001开头的session 来处理。
Event, notification event和Fire&Forget methods 需要使用session处理,如果应用需要的话。比如因为功能安全的需要。
对于events,notification events,和 Fire&Forget methods ,Session ID需要以0x0001开头,且每次message发出的时候递增。
当Session ID达到0xFFFF,则其回到0x0001重新开始。

【Version】
Protocol Version是一个8位字段,其中包含SOME/IP的协议版本,目前应该被设置为0x01 。
Interface Version 是一个8位字段,其中包含Service Interface的Major Version 。

【Message Type】
Message Type用来区别不同类型的message,且应当包含如下的值:

常规request(消息类型0x00)将在未发生错误时由response(消息类型0x80)应答。如果发生错误,则会发送error消息(消息类型0x81)。 也可以发送不需要响应消息的请求(消息类型0x01)。为了通过notification更新值,存在一个callback接口(消息类型0x02)。
对于所有消息,存在可选的acknowledgment 报文(ACK) 。 这是为那些并不告知收到消息的某些传输层协议(如UDP)而定义的。 ACK只在interface specification要求时才被传输。 本文档中仅规定了REQUEST_ACK的用法。 所有其他ACK现在都是信息性的,不需要实施。

【Return Code】
Return Code用于表示request是否已成功处理。 为了简化header布局,每条消息都传输Return代码。
类型为REQUEST, REQUEST_NO_RETURN和Notification的消息必须将返回码设置为0x00(E_OK)。 允许的特定消息类型的返回码是:

注意:
Return Code不适用于SOME / IP-SD。

【Payload】
SOME / IP payload字段的大小取决于使用的传输协议。 对于UDP,SOME / IP有效载荷应该在0到1400字节之间。限制为1400字节是为了允许将来对协议栈进行更改(例如更改为IPv6或添加安全机制)。 由于TCP支持有效载荷的分段,所以自动支持更大的尺寸。

SOMEIP报文格式部分字段概述(二)相关推荐

  1. icmp报文格式_TCP/IP(二):IP报文格式详解

    1. IP 报文格式 0bit是指位于最左边的最高位,31bit是指位于最右边的最低位,4个字节的32bit按照 bigendian(大端格式:低字节位于高地址)字节序传输:首先是0~7bit,其次 ...

  2. STP/RSTP/MSTP帧格式、报文格式及字段说明

    STP(Spanning Tree Protocol,生成树协议)是一种二层(数据链路层)管理协议,它通过有选择性地阻塞网络冗余链路来达到消除网络二层环路的目的,同时具备链路的备份功能.最初被广泛应用 ...

  3. 2022-09-01 网工进阶(二十九) DHCP-概述、工作原理、报文格式、分配IP地址顺序、地址租期与续租、中继(relay)、Snooping

    概述 IETF于1993年发布了DHCP(Dynamic Host Configuration Protocol,动态主机配置协议).DHCP实现了网络参数配置的自动化,降低客户端的配置和维护成本. ...

  4. 网络协议从入门到底层原理(6)应用层 - 域名、DNS、DHCP、HTTP(ABNF、HTTP报文格式、请求方法、头部字段、状态码、跨域)、代理、CDN

    应用层 域名( Domain Name)- 顶级域名.二级域名 DNS - DNS服务器.常用命令 DHCP(DISCOVER.OFFER.REQUEST.ACKNOWLEDGE) HTTP HTTP ...

  5. TCP、UDP、IP、以太网报文格式以及重要字段详解

    TCP报文格式: ​ ​ 源端口号和目的端口号: ​ 用于寻找发端和收端应用进程.这两个值加上ip首部源端ip地址和目的端ip地址唯一确定一个tcp连接. ​ 序号字段: ​ 序号用来标识从T C P ...

  6. DNS报文格式(RFC1035)

    2.资源记录定义(RR definitions)     2.1 格式         后面分析报文的时候详细解释.     2.2 类型值(TYPE values)         类型主要用在资源 ...

  7. 【计算机网络】网络层 : BGP 协议 ( BGP 协议简介 | BGP 协议信息交换 | BGP 协议报文格式 | BGP-4 常用报文 | RIP 、OSPF、BGP 协议对比 )

    文章目录 一.路由选择协议分类 二.BGP 协议 简介 三.BGP 协议 信息交换过程 三.BGP 协议 报文格式 四.BGP 协议 特点 五.BGP-4 协议的 四种报文 六.RIP .OSPF.B ...

  8. DNS协议详解及报文格式分析

    https://blog.csdn.net/tianxuhong/article/details/74922454 目录 一. DNS协议理论知识 1.1. 域名结构 1.2. 域名服务器 1.3. ...

  9. 一篇文章带你详解 HTTP 协议之报文首部及字段详解(中)

    在上一篇中,我们已经讲解了一到五的内容,还没看过的可以先看, 下面接着讲剩余内容: 六.HTTP 报文首部之首部字段(重点分析) 七.HTTP 响应状态码(重点分析) 八.HTTP 报文实体 九.与 ...

  10. icmp报文格式_IPV6报文格式和IPV4有什么区别?

    前言 RFC2460定义了IPv6数据报格式. 总体结构上,IPv6数据报格式与IPv4数据报格式是一样的,也是由IP报头和数据(在IPv6中称为有效载荷)这两个部分组成的. 但在IPv6数据报数据部 ...

最新文章

  1. 有关缅甸语学习的一些网站
  2. 2.CCGridAction(3D效果),3D反转特效,凸透镜特效,液体特效,3D翻页特效,水波纹特效,3D晃动的特效,扭曲旋转特效,波动特效,3D波动特效
  3. FTP 两种传输模式 Binary 和 ASCII 的区别
  4. 用URLGather来管理和保存你的页面
  5. 多线程中局部静态变量初始化的陷阱
  6. 计算机换汉语快捷键,电脑常用快捷键
  7. POJ1321 Bailian1321 棋盘问题【DFS】
  8. 第二个结对编程——UI设计
  9. HashMap工作原理和扩容机制
  10. java canvas 画线_java – 在扩展Canvas时使用drawLine()绘制粗线
  11. 虚假唤醒spurious wakeup
  12. 【zhasite】托业英语阅读技巧有哪些
  13. Qt Charts入门
  14. @PreAuthorize、@Secured、 @RolesAllowed优先级
  15. IC卡和ID卡的区别
  16. Jetpack Room基本用法
  17. 网上商城系统mysql_网上商城系统jsp+servlet+mysql130909
  18. cad渐开线齿轮轮廓绘制_CAD渐开线齿轮怎么画?
  19. 汇编 第十章 call和ret指令
  20. 科比投篮预测——可视化与探索性数据分析(二)

热门文章

  1. 关于百度地图海量打点的问题
  2. 谷歌电子市场开发流程(3)-关于加载界面的处理
  3. akamai反爬虫 akamai2.0 反爬 akamiv2 阿卡迈|ti|德州仪器|nike|机票预定| Maersk
  4. 金山软件遭遇“35岁危机”,曾经风光无限,如今谁能养老?
  5. 【开篇】抽象代数的历史背景与内容总览
  6. LVDT位移传感器的构成原理及特点
  7. 图片标注工具labeling的安装和使用
  8. selenium1、selenium2 示例代码(java版)
  9. EXCEL VBA编程入门一
  10. Java架构师知识体系图谱