典型的 SOME/IP 多绑定用例总结

SOME/IP 部署中 AP SWC 不自行打开套接字连接的原因

在典型的 SOME/IP 网络协议部署场景里,AP SWC 不太可能自己打开套接字连接与远程服务通信,因为 SOME/IP 被设计为尽可能少用端口。这一需求源于低功耗 / 低资源的嵌入式 ECU,并行管理大量 IP 套接字会在内存资源方面产生巨大成本,并且与非汽车 IT 对端口的使用模式相比,主要由 AUTOSAR CP 构成的车内网络以某种方式要求采用这种尽量少用端口的方法,这种情况并不常见。

架构特点及复用情况

通常这种需求催生了一种架构,即一个 ECU(网络端点)的所有 SOME/IP 流量通过一个 IP 端口进行路由,意味着不同本地应用程序(服务提供者或服务消费者)的 SOME/IP 消息使用一个套接字连接进行复用。在经典的 AUTOSAR(CP)中,这是个直观概念(比如 RTE),因为存在共享通信栈,整个通信都通过它进行,通过一个套接字对不同上层 PDU 进行复用是集成在 CP 的 SoAd 基本软件模块中的核心功能。对于有 POSIX 套接字 API 的 POSIX 兼容操作系统,多个应用程序的 SOME/IP 通信复用一个端口需要引入一个中央守护进程来管理相应端口,该进程起到在 SOME/IP 网络通信和本地通信之间架桥的作用。

通信路径相关情况

从图中可以看到,ara::com 应用程序中的服务代理通过(绿色线条)一个 SOME/IP 桥与远程服务实例 2 进行通信,有两点值得注意:

  • 通信路径颜色区分及原因
    将从应用程序到桥的通信路径(绿色)与从桥到服务实例 2 的通信路径(蓝色)用不同颜色表示,原因是两部分使用不同传输机制。第一部分(绿色)在代理和 SOME/IP 桥之间采用供应商特定实现,供应商不仅决定使用哪种技术(如管道、套接字、共享内存等),还决定该路径上使用哪种序列化格式(见 7.1 节)。这里涉及优化问题,在优化的 AP 产品中,若为绿色线条表示的通信路径使用不同序列化格式会导致低效,因为服务消费者中的服务代理传输数据时会先专有序列化,SOME/IP 桥要反序列化再重新序列化为 SOME/IP 序列化格式,即便有更精细的本地通信序列化方法也无益处,因为 SOME/IP 桥无法简单复制数据。
  • 服务发现和 SOME/IP 桥功能框画框原因
    在服务发现和 SOME/IP 桥功能块周围画了一个框,是因为在产品实现中,它们很可能被集成到一个组件(在一个守护进程)中运行,这两个功能高度相关。注册表(服务发现)部分由 ECU 本地部分(接收本地注册,为本地 FindService 请求提供服务)和网络相关功能(基于 SOME/IP 服务发现的提供 / 查找)组成,且注册表必须进行仲裁,这种仲裁从核心上来说也是一种桥接功能。

总之,对于示例场景,最终会使用一个多绑定设置,即便本地 ara::com 应用程序和 SOME/IP 桥节点通信的技术传输方式相同,但绑定的序列化部分是不同的。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/920224.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Spring Cloud Alibaba、Spring Cloud 与 Spring Boot各版本的对应关系

参考spring-cloud-alibaba github wiki说明:版本说明 下面截取说明: 2022.x 分支 2021.x 分支 2.2.x 分支 组件版本关系

STM32完全学习——系统时钟设置

一、时钟框图的解读 首先我们知道STM32在上电初始化之后使用的是内部的HSI未经过分频直接通过SW供给给系统时钟,由于内部HSI存在较大的误差,因此我们在系统完成上电初始化,之后需要将STM32的时钟切换到外部HSE作为系统时钟,那么我…

ubuntu无密码用SCP复制文件到windows

默认情况下,ubuntu使用scp复制文件到windows需要输入密码: scp *.bin dev001@172.16.251.147:~/Desktop/. 为了解决每次复制文件都要输入密码这个问题,需要按如下操作: 1.创建ssh密钥 ssh-keygen -t ed25519 -C "xxx_xxx_xxx@hotmail.com" 2.使用scp复制公钥到w…

vulfocus在线靶场:CVE-2018-7600 速通手册

目录 一、启动环境,访问页面,语言选择中文,打开phpmyadmin 二、phpmyadmin中打开小房子 三、选择显示php信息 四、ctrlF,搜索flag,复制粘贴到任务中,通关 一、启动环境,访问页面,…

vue3 element el-table实现表格动态增加/删除/编辑表格行,带有校验规则

需求描述 在项目中遇到需要实现表格动态的新增、编辑、删除表格行的需求,同时带有校验规则 代码解决 点击新增的时候,给新增row默认属性,给相应的默认值,包括给一个isEditor: true,用来区分是否需要编辑。同时当有编…

python实战案例----使用 PyQt5 构建简单的 HTTP 接口测试工具

python实战案例----使用 PyQt5 构建简单的 HTTP 接口测试工具 文章目录 python实战案例----使用 PyQt5 构建简单的 HTTP 接口测试工具项目背景技术栈用户界面核心功能实现结果展示完整代码总结 在现代软件开发中,测试接口的有效性与响应情况变得尤为重要。本文将指导…

MySQL社区版的启动与连接

1.启动: 注意:MySQL是默认开机自启的 方式一: 1.WinR 的命令行中直接输入services.msc 2.在服务中找到数据库名称,然后鼠标右键点击启动 方式二: 1.在开始选项中搜索“cmd”命令提示符,使用管理员身份运行 …

《Python浪漫的烟花表白特效》

一、背景介绍 烟花象征着浪漫与激情,将它与表白结合在一起,会创造出别具一格的惊喜效果。使用Python的turtle模块,我们可以轻松绘制出动态的烟花特效,再配合文字表白,打造一段专属的浪漫体验。 接下来,让…

【Linux学习】【Ubuntu入门】1-8 ubuntu下压缩与解压缩

1.Linux系统下常用的压缩格式 常用的压缩扩展名:.tar、.tar.bz2、.tar.gz 2.Windows下7ZIP软件安装 Linux系统下很多文件是.bz2,.gz结尾的压缩文件。 3.Linux系统下gzip压缩工具 gzip工具负责压缩和解压缩.gz格式的压缩包。 gzip对单个文件进行…

Ubuntu问题 -- 允许ssh使用root用户登陆

目的 新重装的系统, 普通用户可以使用ssh登陆服务器, 但是root不能使用ssh登陆 方法 vim 编辑ssh配置文件 sudo vim /etc/ssh/sshd_config找到 PermitRootLogin 这一行, 把后面值改成 yes 重启ssh sudo service sshd restart然后使用root账号登陆即可

最新智能AI问答运营系统(SparkAi)一站式AIGC系统,GPT-4.0/GPT-4o多模态模型+联网搜索提问+AI绘画+管理后台,用户会员套餐

目录 一、文章前言 系统介绍文档 二、功能模块介绍 系统快速体验 三、系统功能模块 3.1 AI全模型支持/插件系统 AI大模型 多模态模型文档分析 多模态识图理解能力 联网搜索回复 3.2 AI智能体应用 3.2.1 AI智能体/GPTs商店 3.2.2 AI智能体/GPTs工作台 3.2.3 自定义…

Redis面试篇笔记(持续更新)

一、redis主从集群 单节点redis的并发能力是由上限的,要进一步提高redis的并发能力可以搭建主从集群,实现读写分离,一主多从,主节点写数据,从节点读数据 部署redis主从节点的docker-compose文件命令解析 version: &q…

Logback实战指南:基础知识、实战应用及最佳实践全攻略

背景 在Java系统实现过程中,我们不可避免地会借助大量开源功能组件。然而,这些组件往往功能丰富且体系庞大,官方文档常常详尽至数百页。而在实际项目中,我们可能仅需使用其中的一小部分功能,这就造成了一个挑战&#…

如何编译 Cesium 源码

如何编译 Cesium 源码 Cesium 是一个开源的 JavaScript 库,用于构建 3D 地球和地图应用程序。它提供了一套强大的 API 和工具,使开发者能够创建丰富的地理空间应用。本文将指导您如何从 GitHub 下载 Cesium 源码,并在本地进行编译。 TilesB…

短视频矩阵系统是什么?有什么功能?

短视频矩阵系统是什么?短视频矩阵系统是一个为视频创作者和运营者提供全面服务的综合平台,它涵盖了多账号管理、人工智能驱动的剪辑制作、定时自动发布功能、智能评论回复、跨平台流量引导及营销成果分析等多项功能。该系统利用先进的技术手段优化、管理…

鸿蒙实战:页面跳转传参

文章目录 1. 实战概述2. 实现步骤2.1 创建鸿蒙项目2.2 编写首页代码2.3 新建第二个页面 3. 测试效果4. 实战总结 1. 实战概述 本次实战,学习如何在HarmonyOS应用中实现页面间参数传递。首先创建项目,编写首页代码,实现按钮跳转至第二个页面并…

windows 和 linux检查操作系统基本信息

windows检查操作系统基本信息 systeminfolinux检查操作系统基本信息 获取系统位数 getconf LONG_BIT查询操作系统release信息 lsb_release -a查询系统信息 cat /etc/issue查询系统名称 uname -a

【WPF】Prism学习(九)

Prism Dependency Injection 1.Container Locator 1.1. Container Locator的引入: Container Locator是在Prism 8.0版本中新引入的一个特性。它的目的是为了帮助Prism框架摆脱对CommonServiceLocator的依赖,并解决一些必须回退到ServiceLocator模式的内…

webgl threejs 云渲染(服务器渲染、后端渲染)解决方案

云渲染和流式传输共享三维模型场景 1、本地无需高端GPU设备即可提供三维项目渲染 云渲染和云流化媒体都可以让3D模型共享变得简单便捷。配备强大GPU的远程服务器早就可以处理密集的处理工作,而专有应用程序,用户也可以从任何个人设备查看全保真模型并与…

Linux的指令(三)

1.grep指令 功能: 在文件中搜索字符串,将找到的行打印出来 -i:忽略大小写的不同,所以大小写视为一样 -n:顺便输出行号 -v:反向选择,就是显示出没有你输入要搜索内容的内容 代码示例: roo…