车载以太网 - SomeIP测试专栏 - 详细解析 - 01

news2024/11/17 4:39:27

        对于介绍SomeIP协议,我还是想从最基础的协议解析来,所以今天还是先将SomeIP协议详解给大家列举一下,也方便大家在工作中如果不记得哪些信息随时可以查看学习,也算是留给我自己的笔记吧,毕竟确实容易忘记。

SomeIP数据:

0000 dm dm dm dm dm dm sm sm sm sm sm sm 08 00 45 00

0010 00 2d 12 66 00 00 40 11 0d 3f sa sa sa sa da da

0020 da da bf cc bf d6 00 19 a0 f1 01 00 80 01 00 00

0030 00 09 00 00 00 00 01 01 02 00 00 00

上面试一组最常见的SomeIP数据,也是比较完整的一段。

解析:(同前面DoIP、ICMP、ARP等数据)

前导码:

帧起始:

1、Destination MAC:dm dm dm dm dm dm   目标物理地址

2、Source MAC:sm sm sm sm sm sm 源物理地址

3、ETH type:08 00 

General Use:0x0800 IPv4;0x86DD IPv6;0x8100 Adressing resolution protocol;0x9100 VLAN 0x0806 ARP;ICMP

Single Tag:0x88F5 VLAN Double Tag;

AVB:0x22F0 IEEE 1722;0x88F7 GPTP网络;0x22EA Multiple Stream Reservation Protocol;

V2X:0x88DC Wave short Message Protocol;

802.3:0x0-0x05DC IEEE 802.3长度

4、Version+HIL:45

版本:如4表示IPV4      IPV4:4,IPV6:6

5、 DSCP+ECN:00

Differentiated Service:一般没有使用,详细参考RFC

Explicit Congestion Notification:用于扩展检测丢包

6、 Total length:00  2d

总长度:header+数据 总长度  

7、 Identification:12 66

计时器:占16位,它是一个计数器,用来产生数据包的标识

8、Flags+Fragment Offset:  40 00

标明是否分片 bit 0: Reserved; must be zerobit 1: Don't Fragment (DF) bit 2: More Fragments (MF)

占12位,指较长的分组在分片后某片在原分组中的相对位置.片偏移以 8 个字节为偏移单位

9、 Time to alive:40

生存时间:占8位,记为TTL (Time To Live) 数据报在网络中可通过的路由器数的最大值,TTL 字段是由发送端初始设置一个 8 bit字段.推荐的初始值由分配数字 RFC 指定,当前值为 64.发送 ICMP 回显应答时经常把 TTL 设为最大值 255

10、Protocol:11

协议类型:占8位,指出此数据报携带的数据使用何种协议以便目的主机的IP层将数据部分上交给哪个处理过程, 1表示为 ICMP 协议, 2表示为 IGMP 协议, 6表示为 TCP 协议, 17表示为 UDP 协议

11、Header checksum:0d 3d   数据头CRC

12、Source IP:sa sa sa sa  源IP地址

13、Destination IP:da da da da  目标IP地址

14、Source Port:bf cc  源端口号 

15、Destination port:bf d6 目标端口号

16、UDP Length:00 19

17、Checksum:a0 ed UDP校验

SomeIP数据:

Message ID:

18、Service ID:01 00 用于标识一个特定的服务,同一辆车中的不同的服务应具有不同的Service ID;特殊Service ID我们后面会介绍。

19、Method ID:80 05 最高位用于标识事件和通知(Method、Field-Getter/Setter、Event、Field-Notifier)。

20、Length:00 00 00 09

Request ID:

21、Client ID:00 00 车辆中的唯一标识符,高字节设置为0x00,低字节为ECU对应的诊断ID

22、Session ID:00 00 客户端调用的唯一标识符,表示一次会话过程;

23、Protocol Version:01 SomeIP协议版本号,当前一般使用的都是0x01

24、Interface Version:01 SomeIP协议接口版本,用于检测匹配的一致性,一般也是设置为0x01

25、Message Type:01 SomeIP报文类型,这个湖面会做详细介绍

26、Return Code:00 返回码,不同的返回码表示不同的意思;类似于CAN诊断的NRC码

23、Payload:00 负载数据

数据对比字节图:

        由于SomeIP报文类型种类太多,因此我们今天这里只介绍到SomeIP Header信息,这样方便后面的逐一进行介绍,大家感兴趣的话关注下,后面会一一进行分享,绝对是全网最细致的内容。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/184479.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

分布式数据库中间件——Mycat2

一、Mycat2 概述 Mycat是基于java语言编写的数据库中间件,核心功能是分库分表和读写分离,可以将大表水平分割为N个小表。 可以看做为Mysql的数据库服务器,可以用连接Mysql的方式去连接Mycat,端口为8066 二、Mycat的三大作用 2.…

Node 项目中常见的问题及解决方法

1. window和mac下设置NODE_ENV变量的问题 我们都知道在前端项目中会根据不同的环境变量来处理不同的逻辑,在node后端中也一样,我们需要设置本地开发环境、测试环境、 线上环境等,此时有一直设置环境变量的方案是在package.json中的script属性…

Python学习笔记——错误和异常

错误的分类编写程序过程中遇到的错误都分为两类:语法错误与运行时错误。语法错误:当代码不符合Python语法规则时, 在解析过程中会报SyntaxError。运行时错误:即语句或表达式在语法上都是正确的, 但在运行时发生了错误。当程序发生异常时&…

从零搭建完整python自动化测试框架(UI自动化和接口自动化

从零搭建完整python自动化测试框架(UI自动化和接口自动化) 文章目录 总体框架 PO模式、DDT数据驱动、关键字驱动 框架技术选择 框架运行结果 各用例对应的定义方式(PO/DDT) 测试执行结果 从零开始搭建项目 一、开发环境搭…

Vue-Vuex

前言 Vuex 是一个专为 Vue.js 应用程序开发的状态管理模式 库 官网介绍:https://vuex.vuejs.org/zh/ 以下主要讲解的是如何定义与使用,如果还没有对vuex进行了解的话,请先查看官网,了解其功能、用法及用途。 关于vuex&#xff0c…

代码随想录算法训练营第五十二天_第九章_动态规划 | 121. 买卖股票的最佳时机、122.买卖股票的最佳时机II

LeetCdoe 121. 买卖股票的最佳时机给定一个数组 prices ,它的第 i 个元素 prices[i] 表示一支给定股票第 i 天的价格。 你只能选择 某一天 买入这只股票,并选择在 未来的某一个不同的日子 卖出该股票。设计一个算法来计算你所能获取的最大利润。 返回你可…

verilog 数字系统设计读书笔记-------持久更新

Verilog模型可以是实际电路的不同级别的抽象。这些抽象的级别和它们所对应的模型类型共有以下5种:系统级、算法级、RTL级、门级、开关级‘bz :表示高阻态, ’bx表示不定值(0或1均可)include "muxtwo.v" 将文件引进{$ ra…

【Linux】怎么理解进程

✍作者:阿润菜菜 📖专栏:Liunx系统编程 本文通过冯诺依曼体系结构(硬件部分)和操作系统(软件部分)为基础来介绍我们应该如何理解进程,为后续的学习做铺垫。 本文目录一、预备知识1.建…

误差逆传播算法公式理解及推导

前言:公式理解及推导参考自《机器学习》周志华 P101 BP网络 BP网络一般是指由 误差逆传播(error BackPropagation, BP)算法训练的多层前馈神经网络。 给定训练集 D{(x1,y1)D\left\{\left(\boldsymbol{x}_1, \boldsymbol{y}_1\right)\right…

2023年我的Flag已准备完毕

前言: 😄作者简介:小曾同学.com,小伙伴们也可以叫我小曾,一个致力于测试开发的博主⛽️ 如果文章知识点有错误的地方,还请大家指正,让我们一起学习,一起进步。 😊 座右铭&#xff1a…

用力过猛,把服务压挂了?

背景 在刚开始进行压测的时候,我也不知道需要提前分析下压测的QPS目标,也不知道说第一步压测的预估值是多少,结果一下子干上去,就把测试环境的服务给整挂了,然后就迎来了一大波的投诉(好惨呐&#xff09…

【6-循环神经网络】北京大学TensorFlow2.0

课程地址:【北京大学】Tensorflow2.0_哔哩哔哩_bilibiliPython3.7和TensorFlow2.1六讲:神经网络计算:神经网络的计算过程,搭建第一个神经网络模型神经网络优化:神经网络的优化方法,掌握学习率、激活函数、损…

基于微信小程序的校园自助打印系统小程序

文末联系获取源码 开发语言:Java 框架:springboot JDK版本:JDK1.8 服务器:tomcat7 数据库:mysql 5.7/8.0 数据库工具:Navicat11 开发软件:eclipse/myeclipse/idea Maven包:Maven3.3.…

GJB 5000B二级-RDM需求开发与管理

一、主要变化情况 新增3项(金色)、合并12->5项(绿色)、修订3项(蓝色) 合并的主要内容 1、合并过程域:原标准中RD与ReqM合并为RDM   需求开发与需求管理的过程活动紧密相关,在全生命周期中不可分割。 2、合并实践条目:精炼实践,聚焦重点   a)ReqM SP1.1“获…

UE运行时动态设置屏幕分辨率

文章目录 1.实现目标2.实现过程2.1 控制台直接输入命令2.2 通过蓝图设置3.参考资料1.实现目标 在UE中以独立进程(Standalone Game)方式启动游戏,并在运行时动态修改游戏窗口的屏幕分辨率大小,如下图所示屏幕大小从1000x800修改为600x400。 2.实现过程 参考文档和资料,通…

微服务服务治理

服务治理什么是服务治理?第一部分 服务注册第二部分 服务发现Nacos(常见注册中心)入门搭建Nacos环境Nacos远程调用实现商品服务的负载均衡什么是负载均衡?手动实现负载均衡利用组件实现负载均衡修改负载均衡策略什么是服务治理? 服务治理是微…

PySpark sql 中一些函数的总结(持续更新)

看到什么函数就记录了,没有什么逻辑关系 spark 中DataFrame 和 pandas的DataFrame的区别 1. F.split() 和 df.withColumn() from pyspark.sql import SparkSession from pyspark.sql import functions as F from pyspark.sql.types import *df spark.sql(sql) sp…

打开Jupyter notebook没有虚拟环境内核

放了个假,今天准备打开anaconda中的jupyter notebook重温一下之前的文档,结果双击Anaconda-Navigator出现了【应用程序“Anaconda-Navigator”无法打开】,想着利用终端也可以操作,于是使用下面命令激活了环境并打开jupter noteboo…

JZ11 旋转数组的最小数字

【答案解析】:暴力破解:遍历数组找出最小值即可 更优思想:采用二分查找,这个题主要分析三种旋转情况[1, 2, 3, 4, 5],使用中间值与右端进行比较。 1. 中间大于右边[3, 4, 5, 1, 2],这种情况下,最…

Spring Framework-01

Spring两大核心技术 1.IOC 2.AOP Spring 1 Spring Framework 1.核心层 Core Container:核心容器,这个模块是Spring最核心的模块,其他的都需要依赖该模块 2.AOP层 AOP:面向切面编程,它依赖核心层容器,目的是在不改变原有代码的前…