​新年第一篇,详细介绍一下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中,每个服务就好像我们每一个人在社会中扮演的角色,在对别人提供着服务的同时,同时也享受着别人提供出来的服务,人与人之间,既是彼此独立的,又是需要互相通讯的。服务提供者将功能具象为一组接口,这样使用者就能知道如何调用服务,完成某件事情,得到某个结果。关于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是一个可行的协议选择。SOME/IP还有一个控制协议SOME/IP-SD,我会在下一篇文章再作详细介绍,记得关注哦~

扫码关注我的公众号“拖拉机日记”,回复“SOMEIP协议”即可获取最新AUTOSAR规范文档。

SOME/IP 协议介绍相关推荐

  1. TCP/IP学习笔记:TCP/IP协议介绍

    TCP/IP的通讯协议 这部分简要介绍一下TCP/IP的内部结构,为讨论与互联网有关的安全问题打下基础.TCP/IP协议组之所以流行,部分原因是因为它可以用在各种各样的信道和底层协议(例如T1和X.2 ...

  2. SOME/IP协议介绍

    SOME/IP全称Scalableservice-Oriented Middleware over IP,基于IP的可扩展面向服务的中间件.中间件的概念在汽车电子比较陌生,个人理解类似于手写代码的链接 ...

  3. 云计算介绍 tcp/ip协议介绍及配置

    NSD ADMIN DAY01 案例1:配置计算机名及工作组 案例2:TCP/IP地址配置 案例3:网络连通性测试 1 案例1:配置计算机名及工作组 1.1 问题 本例要求为修改计算机名并加入工作组: ...

  4. 唤醒手腕 TCP/IP 协议进行三次握手、四次挥手建立连接详细介绍

    访问域名的 IP 地址,User-Agent(一般是指浏览器)会以一个随机端口(1024 < 端口 < 65535)向服务器的 WEB 程序(常用的有 Apache(httpd), ngi ...

  5. TCP/IP协议 网络层

    IP协议介绍 1.IP协议是TCP/IP协议族中最为核心的协议.IP协议将多个包交换网络连接起来,它在源地址和目的地址之间传送一种称为数据包的东西,它还提供对数据大小的重新组装功能,以适应不同网络对包 ...

  6. TCP/IP协议基础

    1.TCP/IP协议栈 四层模型  TCP/IP这个协议遵守一个四层的模型概念:应用层.传输层.互联层和网络接口层. 网络接口层  模型的基层是网络接口层.负责数据帧的发送和接收,帧是独立的网络信息传 ...

  7. 一文带你看懂TCP/IP协议 (更新中 现更新至网络层部分)

    相信大家在编程的学习或应用中,对网络编程都有一定的需求.我们都知道http/https属于TCP/IP协议,也都用到过get,post等方法,但是想要真正的了解这些东西的原理.我认为TCP/IP协议还 ...

  8. TCP/IP协议基础(转)

    转自 http://www.chinaunix.net 作者:Bernardus160  发表于:2003-12-03 17:33:15 TCP/IP协议基础 -------------------- ...

  9. TCP/IP协议就是这个玩意(不看也不影响拿到50K!但是程序员应该知道这些)持续更新中

    相信大家在编程的学习或应用中,对网络编程都有一定的需求.我们都知道http/https属于TCP/IP协议,也都用到过get,post等方法,但是想要真正的了解这些东西的原理.我认为TCP/IP协议还 ...

  10. IP协议安全:泪滴攻击与碎片攻击

    一.IP协议介绍 IP协议是网络中最繁忙的协议.IP协议是一种best efforts协议,不保证可靠性,数据包可能重复.丢失:无连接协议,同一个连接中的多个报文被独立对待.IP协议主要定义了数据传送 ...

最新文章

  1. python采集bandwidth信息
  2. 整理Silverlight资源列表(四)——Silverlight案例补充
  3. android 图片操作
  4. 【Python】一行python代码利用人工智能去除工作照背景
  5. 在windows下用VMware虚拟机来安装linux
  6. 小程序richtext_用于基于SWT的应用程序的RichText编辑器组件
  7. 定义一个结构体指针需要分配存储空间?
  8. Java解决空引用_在java中检查空引用的乐观方法
  9. ERP沙盘模拟实验报告
  10. 阿里云 部署并开启nodejs应用
  11. GetTickCount函数在linux下的实现
  12. leetCode-458. Poor Pigs
  13. Soul网关源码阅读06-使用zookeeper同步数据(01)
  14. 大数据成神之路?那么你一定要看这里
  15. 旋转增量式拉绳编码器出现故障应急处理
  16. 无法ping 对方计算机,ping通对方ip,却不能访问对方电脑?
  17. c语言罗马数字转十进制,罗马数字转十进制的三种方法
  18. 什么情况下需要破坏双亲委派模型
  19. stata中超好用小命令:一键将excel文件转换成dta文件
  20. 系统分析与设计HW4

热门文章

  1. ubuntu20.04安装nvidia显卡驱动/CUDA/cuDNN
  2. IBM ServerGuide导航光盘下载列表
  3. CruiseControl入门简介
  4. 什么是控制台应用程序
  5. android 毫秒值转换时分秒],毫秒数转换成天时分秒、时分秒
  6. 解析torch.norm函数
  7. 国内外各大免费搜索引擎、导航网址提交入口(转载)
  8. python实验报告实验总结_python实验报告一
  9. 基于python网上订餐系统哪家好_网上订餐系统python程序代码_(完整版)基于安卓的网上订餐系统毕业设计...
  10. 用计算机代码怎么表白,IT男专用表白程序