一文了解什么是SOME/IP协议(超详细)
SOME/IP
在CAN总线的车载网络中,通信过程是面向信号的
当ECU的信号的值发生了改变,或者发送周期到了,就会发送消息,而不考虑接收者是否需要,这样就会造成总线上出现不必要的信息,占用了带宽
而SOME/IP的出现就是为了解决这一问题,它和CAN网络发送机制不同,它是接收者有需要时才会发送,避免了无效信息对总线造成的影响
SOME/IP
Scalable service-Oriented MiddlewarE over IP,通过网络提供面向服务的通信,不能写作Some/IP等
既然SOME/IP是一种提供服务的通信协议,我们就可以把请求服务的ECU看成是client,而提供服务的ECU就是server
SOME/IP作为一种通信协议,它也有自己的数据结构,根据官方文档
SOME/IP由Header + Payload构成,其中协议头部里的字段是:
Message ID
4个字节,对应用程序方法的RPC调用或识别事件,方法和事件正好对应着Message ID的两个组成部分:Service ID和Method ID
什么是RPC?
Remote Procedure Call,A method call from one ECU to another that is transmitted using messages,使用消息从一个ECU对另一个ECU里的方法进行调用
Length
4个字节,它是从Request ID开始一直到Payload的结尾的字节数
Request ID
4个字节,它由Client ID和Session ID组成
其中Client ID是请求服务的ECU的唯一标识符,它能够让提供服务的ECU区分来自不同的客户端的SOME/IP报文
Session ID是区分来自同一发送者的消息的唯一标识符,它会随着请求/响应消息的增加而增加,如果响应Session ID和请求Session ID不匹配,则订阅者必须忽略响应
当生成响应消息时,server端会把Request ID复制到响应消息
Protocol Version
1个字节,SOME/IP协议版本号
Interface Version
1个字节,接口版本号
Message Type
1个字节,用于区分不同类型的消息
request(0x00)消息如果没有错误发生应该以response(0x80)响应,如果发生错误,则发送error(0x81),也可以发送没有没有响应消息的request(0x01)
notification(0x02)属于事件通知类服务,由client向server订阅服务内容,然后server会自动给client发布服务内容
notification分为两类:Event和Field,这两类都需要先使用SOME/IP-SD对服务进行订阅,这是前提,然后再用常规的SOME/IP notification类型消息发布通知内容
Event的过程是:client发SOME/IP-SD给server订阅,server告知订阅结果,server发布通知内容,server发布的方式有三种:
- 循环发送-以固定的时间发送更新后的值
- 更新后发送-一旦值发生改变就会发送
- 大于特定的值-与旧值的差值达到某个条件时发送
而Field在Event的基础上,还可以对信息进行getter/setter
TP标志类型的消息和上面的一般类型逻辑相同
Return Code
1个字节,返回码用来表示请求是否已成功处理
传输层
SOME/IP属于应用层,它就需要依赖传输层的TCP/UDP协议,一个SOME/IP服务可以通过以下方式传达所有方法、事件和通知
- TCP连接
- UDP单播
- UDP多播
至于哪种SOME/IP用TCP,哪种用UDP,可以根据SOME/IP的服务类型和TCP/UDP的特性来考虑(TCP是可靠的单播,UDP是不可靠的单播和多播),比如一个ECU需要给多个ECU发布服务内容时,就需要依赖UDP传输
SOME/IP-SD
SOME/IP是client和server对服务内容的请求和响应,但是client如何知道server有哪些服务可提供呢?常规的SOME/IP消息并不具有这样的功能,所以就有了SOME/IP-SD协议,可用于汽车网络中的服务发布/订阅
SOME/IP-SD
Service Discovery Protocol,服务发现协议,是SOME/IP协议的一种类型,它用于:
- 找到服务
- 检测服务是否正在运行
- 实现发布/订阅处理
SOME/IP可用在TCP/UDP协议上,但是SOME/IP-SD只能用在UDP上,因为SOME/IP-SD只是为了发现服务,并不需要TCP的可靠性连接等特性
SOME/IP-SD协议结构
你会发现字段Message ID、Protocol Version、Interface Version、Message Type、Return Code的值都是固定的,SOME/IP-SD的Service ID是0xFFFF,Method ID是0x8100
SOME/IP-SD有两种发现机制:
- Find Service Entry
在服务的当前状态未知的情况下,由client向server发送请求可用的服务
- Offer Service Entry
主动告知其他通信节点它可用的服务
Method ID是0x8100
SOME/IP-SD有两种发现机制:
- Find Service Entry
在服务的当前状态未知的情况下,由client向server发送请求可用的服务
- Offer Service Entry
主动告知其他通信节点它可用的服务
更多内容,请关注汽车网络诊断通信
一文了解什么是SOME/IP协议(超详细)相关推荐
- 带你一文搞懂网络层的IP协议\数据链路层的以太网\ARP协议以及DNS和NAT协议
TCP连接管理中的保活机制: TCP协议是面向连接通信,若通信双方长时间没有数据往来,就需要确定对方还是否在线,连接是否正常? 若通信双方长时间(7200秒)没有数据往来,在服务端会向客 ...
- IP协议首部详细分析
IP协议是我们学习网络协议最开始,也是最基础的协议.那么今天我们主要介绍一下有关于IP协议头格式的基本状态.那么就让我们具体看以下有关于IP协议头格式和Sniiffer Portable的IP头的相关 ...
- flag push tcp 作用_TCP协议超详细解析及攻击/防范
TCP 协议作用 TCP 协议使用的是面向连接的方法进行通信的,其作用如下: 面向流的处理:TCP 以流的方式处理数据.换句话说,TCP 可以一个字节一个字节地接收数据,而不是一次接收一个预订格式的数 ...
- 一文读懂Http Headers为何物(超详细)
一.HTTP 请求内容 由于最新的http2,并没有被各大浏览器广泛使用,所以本文是基于http/1.1所编写的. 同时经过检测我们也发现,chrome等浏览器也正是使用http/1.1版本的. 关于 ...
- Nginx配置https协议 超详细!!!
本文章基于Linux操作系统演示. 准备工作:有公网IP的服务器(CentOS7).申请一个域名.为域名申请SSL证书.将服务器的公网IP和域名进行绑定. 一.下载安装Nginx Nginx下载网址: ...
- 关于使用jquery.wordexport.js如何设置导入文档的页边距问题(超详细,亲测可用)
问题描述 最近项目要求修改导出的word文档页边距.如下图所示: 原来使用wordexport.js默认导出的页边距是标准的,需求是将页边距改为窄. 解决的步骤一: 首先将页面直接导出,然后使用wor ...
- Ubuntu20.04配置静态ip(超详细)
配置文件路径: /etc/netplan/01-network-manager-all.yaml # Let NetworkManager manage all devices on this sys ...
- 一文掌握GSEA通路富集分析,超详细教程!
生信宝典之前总结了一篇关于GSEA富集分析的推文--GSEA富集分析:从概念理解到界面实操,介绍了GSEA的定义.GSEA原理.GSEA分析.Leading-edge分析等,是全网最流行的原理+操作兼 ...
- 一文搞定设计模式!五万字超详细解析!带着耐心点进来!
一.概述 设计模式是解决问题的方案,学习现有的设计模式可以做到经验复用. 拥有设计模式词汇,在沟通时就能用更少的词汇来讨论,并且不需要了解底层细节. 二.创建型 1. 单例(Singleton) In ...
最新文章
- session 存放对象变量,及遇到的奇怪现象
- HTML基础(我的复习和学习过程)day-01
- React.Component(V16.8.6)
- 栈结构功能实现的伪码展示【数据结构F】
- Java案例:Karel学习Java
- 总结windows下堆溢出的三种利用方式
- Java基础:红黑树概念
- Background Intelligent Transfer Service 服务错误(BITS服务失败) 的修复解决方案
- 仿大众点评下拉菜单实现
- Android 神兵利器之通过解析网页获取到的API数据合集,可拿来就用
- android qq音乐无法连接网络连接,qq音乐不能播放_qq音乐为什么老是提示说歌曲无效或网络连接失败呢?...
- TZOJ 数据结构实验:一元多项式相加
- 税费计算机,友商税费计算器
- 从大厂裸辞后,面阿里、字节全都挂掉,连货拉拉都不要自己...
- 【PyTorch】4 姓氏分类RNN实战(Simple RNN)——18 种起源语言的数千种姓氏分类
- 发光字招牌制作底板的种类
- 中文信息处理实验2——基于词表的分词
- 转载:嵌入式系统综述之二
- 数学专业的考计算机博士,在数字中发现乐趣 过来人谈数学专业考研
- 游戏游客登录与账号登录