详细介绍一下SOME/IP协议

some/ip,全称为scalable service-oriented middleware over ip,是用于控制消息的汽车中间件解决方案,是一种面向服务的可伸缩的协议。some/ip于2011年由bmw设计,2014年纳入autosar规范。
some/ip的报文格式如下图所示,由消息头部(header)和消息体(payload)组成,header主要包括以下字段:
message id,用于唯一标识消息,当消息为method类型时,由service id和method id组成,当消息为event类型时,由service id和event id组成,如下图所示:
length,消息长度(从request id开始到payload结束);
request id,服务提供者和调用者可用于区分相同消息的不同调用,由client id和session id组成,如下图所示:
通常我们称服务提供者为service,服务调用者为client,service id和client id用于区分,一般会在一个soa架构中统一地配置这些id的数值。
这里插播一点个人理解,在soa中,每个服务就好像我们每一个人在社会中扮演的角色,在对别人提供着服务的同时,同时也享受着别人提供出来的服务,人与人之间,既是彼此独立的,又是需要互相通讯的。服务提供者将功能具象为一组接口,这样使用者就能知道如何调用服务,完成某件事情,得到某个结果。
protocol version,协议头版本号,目前该值必须为1;
interface version,接口版本号,一般由服务提供者定义;
message type,用于标识消息的类型,如下图所示:
消息类型和通信机制之间的映射关系,如下图所示(灵魂画手,将就看吧),不难发现,field结合了method和event,这也就理解了message id中为什么只有method id和event id,没有field id。field可以用于实现这样一种通信场景:客户端希望能够获取/设置/监听服务端的某一个状态值,图中some/ip-sd
return code,用于标识请求是否成功处理,不同的消息类型,它们在传输时所携带的return code也不同:
具体返回值和错误码定义如下:
payload,也叫有效载荷,是消息内容,通常它的长度是可变的。some/ip协议在osi七层网络结构中位于应用层,它建立在tcp或者udp传输层协议之上。当通过udp传输时,由于udp的限制,payload的长度应该限制在1400字节以内,超了则要分组(some/ip-tp),而当通过tcp传输时,可以传输更多的字节,理论上只要不超过length字段的大小即可。
对于autosar系统,payload要遵循autosar规范进行序列化,对于非autosar系统,可以遵循autosar规范进行序列化,也可以采用其他序列化方式如常用的google protocol buffer、json等。
以上介绍了some/ip协议,可以发现,some/ip其实并不等同于soa,只能说要实现soa,some/ip是一个很不错的协议选择。


Vishay推出的新款红外传感器模块,可在阳光直射下稳定工作,不需要衰减装置,且可降低系统成本
边缘网络的发展,人工智能对于启用低延迟5G网络必不可少
安捷伦频谱分析仪报价
10个2021年中国云计算的相关预测
髙压母排热缩管的加热方式一般有哪几种
详细介绍一下SOME/IP协议
格力是怎样为深圳产业园助力的
STM32MP157开发板评测:华清远见FS-MP1A开发板初体验!
LED高压灯条发展前景
ZETag云标签智慧托盘获京东物流创新奖,ZETA物联网技术助力资产管理数智化
贝恩资本和凯雷集团正式向欧司朗提出公开收购欧司朗所有股份的要约
北鲲云超算平台助推生物制药行业发展
人工智能已成产业变革基石 千亿级市场盛宴将开启
逆变器过压保护介绍
可调参考电压源:Adjustable Voltage Ref
正确认识 PC-Based 逻辑分析仪
北京2025年超前布局6G等前沿技术,开展5G超高清视频典型场景的示范应
分立元件组成的烙铁电路
莱姆电子50周年丨跨越半个世纪的匠心精神,与工业相生相成
浙江省2002年7月高等教育自学考试计算机组成原理试题