0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

详细介绍一下SOME/IP协议

冬至子 来源:拖拉机日记 作者:活到一百岁 2023-01-18 16:06 次阅读

SOME/IP,全称为Scalable service-Oriented MiddlewarE over IP,是用于控制消息的汽车中间件解决方案,是一种面向服务的可伸缩的协议。SOME/IP于2011年由BMW设计,2014年纳入AUTOSAR规范。

SOME/IP的报文格式如下图所示,由消息头部(Header)和消息体(Payload)组成,Header主要包括以下字段:

2.jpg

Message ID,用于唯一标识消息,当消息为Method类型时,由Service ID和Method ID组成,当消息为Event类型时,由Service ID和Event ID组成,如下图所示:

2.jpg

Length,消息长度(从Request ID开始到Payload结束);

Request ID,服务提供者和调用者可用于区分相同消息的不同调用,由Client ID和Session ID组成,如下图所示:

2.jpg

通常我们称服务提供者为Service,服务调用者为Client,Service ID和Client ID用于区分,一般会在一个SOA架构中统一地配置这些ID的数值。

这里插播一点个人理解,在SOA中,每个服务就好像我们每一个人在社会中扮演的角色,在对别人提供着服务的同时,同时也享受着别人提供出来的服务,人与人之间,既是彼此独立的,又是需要互相通讯的。服务提供者将功能具象为一组接口,这样使用者就能知道如何调用服务,完成某件事情,得到某个结果。

Protocol Version,协议头版本号,目前该值必须为1;

Interface Version,接口版本号,一般由服务提供者定义;

Message Type,用于标识消息的类型,如下图所示:

2.jpg

消息类型和通信机制之间的映射关系,如下图所示(灵魂画手,将就看吧),不难发现,Field结合了Method和Event,这也就理解了Message ID中为什么只有Method ID和Event ID,没有Field ID。Field可以用于实现这样一种通信场景:客户端希望能够获取/设置/监听服务端的某一个状态值,图中SOME/IP-SD

2.jpg

3.jpg

Return Code,用于标识请求是否成功处理,不同的消息类型,它们在传输时所携带的Return Code也不同:

2.jpg

具体返回值和错误码定义如下:

2.jpg

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是一个很不错的协议选择。

审核编辑:刘清

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • UDP协议
    +关注

    关注

    0

    文章

    69

    浏览量

    12694
  • SOA
    SOA
    +关注

    关注

    1

    文章

    287

    浏览量

    27463
  • TCP通信
    +关注

    关注

    0

    文章

    146

    浏览量

    4221
收藏 人收藏

    评论

    相关推荐

    SOME/IP协议安全攻击

    随着汽车行业对于数据通信的需求不断增加,SOME/IP作为支持汽车以太网进程和设备间通信的种通信协议应运而生。
    的头像 发表于 08-08 15:25 826次阅读
    <b class='flag-5'>SOME</b>/<b class='flag-5'>IP</b><b class='flag-5'>协议</b>安全攻击

    详细介绍一下PSS+Pnoise仿真

    PSS+Pnoise仿真是很多电路要用到的仿真,今天我们详细介绍一下这个仿真。
    的头像 发表于 11-03 18:13 7590次阅读
    <b class='flag-5'>详细</b><b class='flag-5'>介绍</b><b class='flag-5'>一下</b>PSS+Pnoise仿真

    详细分析一下USB协议

    本文跟大家详细分析一下USB协议
    发表于 05-24 06:16

    介绍一下SPI协议

    硬件接口协议在芯片是被广泛使用的,上篇博文详细介绍了I2C协议,这次来介绍一下spi
    发表于 02-17 07:44

    tcp ip 协议讲座:介绍IP协议与UDP协议

    介绍IP协议(包头和IP分包),UDP协议(包头)
    的头像 发表于 07-03 08:05 3036次阅读

    详细介绍一下ACM的优点资料下载

    电子发烧友网为你提供详细介绍一下ACM的优点资料下载的电子资料下载,更有其他相关的电路图、源代码、课件教程、中文资料、英文资料、参考设计、用户指南、解决方案等资料,希望可以帮助到广大的电子工程师们。
    发表于 04-20 08:40 5次下载
    <b class='flag-5'>详细</b><b class='flag-5'>介绍</b><b class='flag-5'>一下</b>ACM的优点资料下载

    车载以太网的SOME/IP-SD协议了解与认识

    通过之前的文章我们了解到了SOME/IP协议的基本组成与SOME/IP的具体工作过程,同时也提到了SOM
    的头像 发表于 08-10 10:53 3004次阅读

    基于SOME/ IP可扩展面向服务的中间件

    PDU 路由组管理需要管理启用到禁用的套接字PDU 路由,SOME/IP - 套接字适配器 [SoAD] - AUTOSAR 模型构建块,可用于通用上层支持SOME/IP中的服务发现。
    的头像 发表于 09-08 17:34 1355次阅读

    介绍种用于SOME/IP应用的灰盒模糊器Ori

    随着智能汽车设备的出现,这些设备之间的数据通信变得越来越重要。SOME/IP个轻量级协议,用于促进进程/设备间的通信,它支持程序性调用和事件通知。由于其简单性和性能,
    发表于 09-21 17:47 961次阅读

    SOME/IP-SD有何作用

    车载以太网协议栈总共可划分为五层,分别为物理层,数据链路层,网络层,传输层,应用层,其中今天所要介绍的内容SOME/IP就是种应用层
    的头像 发表于 10-24 10:58 1851次阅读

    SOME/IP-SD有何作用

    车载以太网协议栈总共可划分为五层,分别为物理层,数据链路层,网络层,传输层,应用层,其中今天所要介绍的内容SOME/IP就是种应用层
    的头像 发表于 10-24 11:00 1268次阅读

    SOME/IP在实践中到底应该如何使用

    车载以太网协议栈总共可划分为五层,分别为物理层,数据链路层,网络层,传输层,应用层,其中今天所要介绍的内容SOME/IP就是种应用层
    的头像 发表于 10-24 15:29 1943次阅读

    汽车SOME/IP模糊测试的常规设计步骤

    汽车以太网上的众多上层协议中,SOME/IP种专门针对汽车的协议,通过 UDP 协议栈提供
    发表于 04-08 10:41 2228次阅读

    SOME/IP协议的基本原理

    随着汽车行业对于数据通信的需求不断增加,SOME/IP作为支持汽车以太网进程和设备间通信的种通信协议应运而生。根据研究[1]表明,第代使
    发表于 08-30 10:29 1519次阅读
    <b class='flag-5'>SOME</b>/<b class='flag-5'>IP</b><b class='flag-5'>协议</b>的基本原理

    some/ip协议是什么

    的需求也在不断增加,SOME/IP作为种新兴的通信技术。 SOME/IP协议具有满足汽车需求的
    的头像 发表于 02-16 17:19 2213次阅读
    <b class='flag-5'>some</b>/<b class='flag-5'>ip</b><b class='flag-5'>协议</b>是什么