SomeIP 协议

这篇具有很好参考价值的文章主要介绍了SomeIP 协议。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

目录

  • 目录

    SomeIP协议

    1.什么是SomeIP

    1.1 someip是一种协议

    1.2 someip是一个中间件

    1.3 协议层

    2.Some/IP的功能

    2.1 序列化

    2.2 远程调用

    2.3 服务发现

    2.4 订阅/发布

    3.服务接口

    Method -方法

    3.1 Method

    3.2 Event

    3.3 filed -属性/状态

    4.SomeIP报文格式

    5.序列化

    5.1 序列化和/反序列化

    6.Some/IP SD(Service Discovery)

    6.1概述

    一种特殊的服务,实现服务寻找事件订阅功能

    6.2 SomeIP SD报文格式

    6.3 SD 启动时序 -服务器和事件的处理阶段


SomeIP协议

1.什么是SomeIP

1.1 someip是一种协议

someip是什么协议?

  • 宝马公司制定的,是车载以太网和SOA的驱动
  • 主要提供车内娱乐信息交互的中间信息传递(例如智能座舱)
  • 可以适配各种操作系统QNX Linux等

1.2 someip是一个中间件

  • 是操作系统/硬件/和APP之间的服务软件
  • 与APP之间使用标准的接口

1.3 协议层

基于TCP/IP的传输,以太网的方式

文章来源地址https://www.toymoban.com/news/detail-823868.html

someip协议,车载,网络,服务器,网络协议

2.Some/IP的功能

2.1 序列化

  • 将数据结果或者对象按照定义的规则转换成二进制的过程,便于在网络上传输

2.2 远程调用

  • 基于网络传输方式实现节点间的方法调用

2.3 服务发现

  • 特殊的服务:该服务,client 可以查找所需要的服务。server端可以告诉client 自己那些服务可以被使用
  • client 端可以和server端动态建立连接

2.4 订阅/发布

  • client 端可以想server 订阅相关topic 的数据。server也可以以cycle/event 的方式发布这些数据

3.服务接口

Method -方法

  • Property/field - 字段属性
  • Event-事件

someip协议,车载,网络,服务器,网络协议

3.1 Method

  • client 向sever 请求报文
  • server 响应报文【RR】==>Request/Response
  • server 不需要回复响应报文【FF-Method】==> Fire/Forget(当请求为F&F通信的时候,请求的报文类型我REQUEST_NO_RETURN)

someip协议,车载,网络,服务器,网络协议

3.2 Event

  • client 订阅一个服务,server发布服务
  • status: on change/cycle
  • status value: on change/cycle/事件值变化超过设置范围

someip协议,车载,网络,服务器,网络协议

3.3 filed -属性/状态

  • set/get
  • cilent request 获取/设置 某个属性或状态

someip协议,车载,网络,服务器,网络协议

  • notify
  • cilent subscribe 某个属性/状态后,server就发布该服务
  • 发布条件同Event,有一点不同得是订阅后server会立即发送此field的内容

someip协议,车载,网络,服务器,网络协议

4.SomeIP报文格式

SomeIP报文一般是由Header 和Payload组成

someip协议,车载,网络,服务器,网络协议

  • Header 部分
  • Message ID: 报文的标识符:4个字节的长度,SomeIP有唯一的ID(类似于CAN ID),当定义为Method的时候,Method Id的最高位为0,当定义为Event的时候,Method ID的最高位为0,不同的Method 和Event也有唯一的Method ID和Event ID,对于远程调用RPC的时候(例如从一个ECU到另一个ECU之间的消息传递),指定的sevice 和对应的调用方法.
  • 例如,某个ecu需要和Tbox之间的数据交互,获取Tbox上的WAN信息,就需要指定service id 为Tbox对应的service id,method ID 为其中定义获取WAN相关信息的ID
  • Length: 4个字节,这里的length 是指的Length字段之后的长度

someip协议,车载,网络,服务器,网络协议

  • Request ID:请求ID
  • 区分每一条请求
  • Server 端会将这部分copy到response报文中
  • client ID: 2个字节,区分请求同一个sevice的不同客户端
  • session ID: 2个字节,同一个客户端请求同一个service的次数

someip协议,车载,网络,服务器,网络协议

  • protocol Version:Some/ip的协议版本,1个字节
  • Interface Version: service Interface 的主版本
  • 用作检测服务的一致性,是否匹配(比如VSP 服务增加功能接口,对应更新了矩阵版本,之前client指定的版本可能就找不到对应的功能)
  • Message Type :报文的类型(区分不同的消息类型),一个字节

someip协议,车载,网络,服务器,网络协议

  • Return Code :请求是否被成功处理,1个字节

someip协议,车载,网络,服务器,网络协议

5.序列化

5.1 序列化和/反序列化

  • 序列化:将对象的状态信息转换为可以存储或以二进制的信息在网络中传输
  • 序列化根据传输的不同数据有不同的规则
  1. 基本数据类型的序列化
  2. 结构体的序列化
  3. 字符串的序列化(定长/变长)
  4. 数组的序列化(定长/变长)
  • 基本数据的序列化
  • 定义传输数据的字节序:例如 uint32 (0x A05C6D4F)

someip协议,车载,网络,服务器,网络协议

​​

someip协议,车载,网络,服务器,网络协议

  • 字符串类型的序列化
  • 字符串由一系列的Unicode字符构成,并且以"\0" (0x00)结束
  • 数组类型的序列化
  • 数组是相同类型的集合
  • 根据数组的元素的序列排列,并进行序列化

6.Some/IP SD(Service Discovery)

6.1概述

一种特殊的服务,实现服务寻找事件订阅功能

  • 服务寻址
  • FindService
  • OfferService
  • StopOffService
  • 事件订阅
  • subscrbe Eventgroup
  • stopSubscribe Eventgroup
  • Subscribe EventgroupAck
  • Subscribe EventgroupNAck

someip协议,车载,网络,服务器,网络协议

6.2 SomeIP SD报文格式

someip协议,车载,网络,服务器,网络协议

  • Flags:第一个字节是标志字段,最高三位从高到低依次为重启标志位,单播标志位,初始数据控制标志位,低五位保留
  • Reboot Flag
  • 重启时置1(或者上电的时候)
  • 当sesson ID 完成从0~0xFFFF的一个循环之后,Reboot置0(sesson ID 或从0逐渐增加直到0xFFFF 后又循环)
  • 重启检测
  • Unicast Flag
  • 是否支持单播接收(=1)
  • Entry 阵列
  • 服务发现是通过SD报文中的Entry阵列字段携带的不同类型Entry来实现的, Entry用来同步服务实例状态和处理事件组的发布和订阅。依据SD 报文中Entry的作用不同将SD的报文类型分为七种,其中Find报文、Offer报文和Stop Offer报文基于不同的机制周期发送,用于同步服务实例的状态;订阅事件组报文、停止订阅事件组报文、订阅ACK报文和订阅NACK报文用于处理事件组的发布和订阅。
  • Option 阵列
    SD 报文中的Entry通过引用option阵列中携带的其他附件信息,能够更灵活的配置
  • entry 的附加信息
  • IP 地址
  • 传输层协议
  • 端口号
  • 类型
  • EndPoint Option
  • Multicast Option
  • Configuration Option
  • Load Balancing Option

6.3 SD 启动时序 -服务器和事件的处理阶段

  • 关闭阶段(Down)
  • 可用阶段(Available)
  • 初始等待阶段(init wait phase)
  • 重复阶段(Repetition phase)
  • 主阶段

someip协议,车载,网络,服务器,网络协议

​​

someip协议,车载,网络,服务器,网络协议

到了这里,关于SomeIP 协议的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • [C++ 网络协议] 多进程服务器端

    具有代表性的并发服务器端实现模型和方法: 多进程服务器:通过创建多个进程提供服务。✔ 多路复用服务器:通过捆绑并统一管理I/O对象提供服务。 多线程服务器:通过生成与客户端等量的线程提供服务。 目录 1. 进程的概念及应用 1.1 什么是进程? 1.2 创建进程 1.2.1 进程

    2024年02月11日
    浏览(25)
  • [网络编程]UDP协议,基于UDP协议的回显服务器

    目录 1.UDP协议介绍 2.UDP协议在Java中的类 2.1DatagramSocket类 2.2DatagramPacket 3.回显服务器 3.1Sever端  3.2Client端   UDP协议是一种网络协议,它是无连接的,全双工,并且是面向数据报,不可靠的一种协议。 常用于在线视频播放,游戏这种实时性要求比较高的应用。或者无需可靠传输

    2024年01月22日
    浏览(39)
  • ubuntu上安装boost库为SOMEIP的X86和ARM下编译做准备(编译两种版本)

    Boost库是C++拓展库,是SOMEIP源码编译所必需的库。编译 Boost 库时,需要根据不同的架构,选择不同的工具链和参数 首先,Boost源码下载,Boost官网:https://www.boost.org 基于此处我编译的SOMEIP源码版本,需要安装1.74版本的Boost库,下载链接:https://boostorg.jfrog.io/artifactory/main/relea

    2024年02月10日
    浏览(33)
  • 解决网络协议服务器问题的关键:定位能力与抓包技术

    本文分享自华为云社区《提升网络协议服务器的定位能力》,作者:张俭。 近期,我再次涉足于协议服务器相关的工作领域,致力于定位并解决各种问题。简单总结一些心得给大家。如果想要定位出协议服务器的问题,那么这些能力可能至关重要。 注:我这里比较偏向协议

    2024年01月16日
    浏览(34)
  • LoRaWAN网关与网络服务器(NS)的通信CUPS 协议介绍

    LoRa Basics™ Station 定期查询 CUPS 服务器以获取更新。该协议是 HTTP/REST,使用Credentials中描述的客户端/服务器身份验证方法。对于每个查询,工作站都会提供有关其当前状态的信息,并接收包含其 LNS 和 CUPS 凭证更新的二进制 blob,以及具有任意更新的通用数据段。 通用数据段

    2024年02月13日
    浏览(22)
  • 【计算机网络】HTTP协议以及简单的HTTP服务器实现

    虽然我们说, 应用层协议是我们程序猿自己定的. 但实际上, 已经有大佬们定义了一些现成的, 又非常好用的应用层协议, 供我们直接参考使用. HTTP(超文本传输议)就是其中之一。 平时我们俗称的 “网址” 其实就是说的 URL 像 / ? : 等这样的字符, 已经被url当做特殊意义理解了.

    2024年01月20日
    浏览(46)
  • 【网络编程】——基于TCP协议实现回显服务器及客户端

    个人主页:兜里有颗棉花糖 欢迎 点赞👍 收藏✨ 留言✉ 加关注💓本文由 兜里有颗棉花糖 原创 收录于专栏【网络编程】【Java系列】 本专栏旨在分享学习网络编程的一点学习心得,欢迎大家在评论区交流讨论💌 TCP提供的API主要有两个类 Socket ( 既会给服务器使用也会给客

    2024年02月03日
    浏览(50)
  • Cisco Packet Tracer实验:访问Web服务器(加深对网络体系结构的理解)_一台主机访问一个Web服务器,HTTP协议

    如果觉得这篇文章写得好,关注一下公众号“小东方不败”吧!码字不易!感谢大佬的关注! 一台普通的主机和一台服务器: 连线: 配置IP地址: 主机: 服务器: 将模式调成simulation,并且只勾选HTTP协议: 然后就可以看到: 点击PC机,选择Web Browser: 勾选下面的top(置顶

    2024年02月04日
    浏览(40)
  • 为什么说 QUIC 协议是现代化网络通信的未来之路及如何实现QUIC服务器

    😄作者简介: 小曾同学.com,一个致力于测试开发的博主⛽️,主要职责:测试开发、CI/CD 如果文章知识点有错误的地方,还请大家指正,让我们一起学习,一起进步。😊 座右铭:不想当开发的测试,不是一个好测试✌️。 如果感觉博主的文章还不错的话,还请点赞、收藏哦

    2024年04月23日
    浏览(38)
  • [TCP协议]基于TCP协议的字典服务器

    目录 1.TCP协议简介: 2.TCP协议在Java中封装的类以及方法 3.字典服务器 3.1服务器代码: 3.2客户端代码: TCP协议是一种有连接,面向字节流,全双工,可靠的网络通信协议 .它相对于UDP协议来说有以下几点好处: 1.它是可靠传输,相比于UDP协议,传输的数据更加可靠.当然这里的可靠是相对的

    2024年02月22日
    浏览(36)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包