软考 系统架构设计师系列知识点之SOME/IP与DDS(2)

2024-05-28 10:28

本文主要是介绍软考 系统架构设计师系列知识点之SOME/IP与DDS(2),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

接前一篇文章:软考 系统架构设计师系列知识点之SOME/IP与DDS(1)

本文内容参考:

车载以太网 - SOME/IP简介_someip-CSDN博客

https://zhuanlan.zhihu.com/p/369422441

什么是SOME/IP?_someip-CSDN博客

SOME/IP 详解系列(1)—— 概述_some ip-CSDN博客

深入浅出SOME/IP协议:基本概念和原理-CSDN博客

特此致谢!

一、SOME/IP

3. 协议概述

(1)定义与特点

SOME/IP是一种应用层协议,其允许在车辆内部网络中实现高效的服务交换和远程调用。这种协议支持车辆各组件之间的复杂通信需求,特别适用于具有高数据吞吐量的场景

  • 服务导向架构(Service-Oriented Architecture,SOA)

SOME/IP实现了一种服务导向架构,允许车辆的各个电子控制单元(ECUs)以服务提供者服务消费者的身份互动。这种架构使得车辆内部的软件组件可以更加灵活地通信和交互

  • 远程过程调用(Remote Procedure Call,RPC)

通过RPC,SOME/IP支持跨网络的函数或过程调用,实现不同ECU之间的紧密协作。

  • 高度可伸缩性和灵活性(Scalability and Flexibility)

SOME/IP协议的设计考虑到了未来车辆网络可能的扩展,支持从小型车辆到大型车队的不同规模应用。

(2)SOME/IP与传统车载网络协议的比较

SOME/IP与传统车载网络协议(如CAN、LIN等)相比,具有明显的优势,但也存在一些不同的应用场景。通过下面的表格,可以更清楚地看到这些差异:

特性SOME/IP传统车载网络协议
数据传输高吞吐量,适合大数据传输适合小规模数据交换
网络结构服务导向,适应性强较为固定的消息格式和网络结构
扩展性易于扩展和升级扩展性相对有限
应用领域适合复杂、高数据需求的现代车辆系统适用于传统、功能单一的车辆系统

4. 主要功能

SOME/IP主要有以下几个功能:

(1)序列化(Serialization)

SOME/IP协议对序列化的解释为数据在PDU(Protocol Data Units,协议数据单元)中的表示方式。展开来说就是将不同的数据结构转换为可在网络上传输的形式,或者说是数据在网络上传输时的封装和排列规则。发送端将数据以一定的规则进行序列化,接收端将数据以同样的规则进行反序列化,从而得到发送端所发送的实际内容。

这部分定义既包含报文头部也包含载荷数据,不仅定义了头部的格式、各字段的长度及含义,还定义了各种数据类型在有效载荷中的排列规则。发送端和接收端通过这样的规则就能获取数据报头的含义及载荷的内容(具体的报文格式会在接下来的文章中详细介绍,本文仅介绍SOME/IP的基本功能)。下图为SOME/IP支持的基础数据类型和复杂数据类型。

(2)远程过程调用(Remote Procedure Call)

远程过程调用,一般用英文缩写RPC表示,听起来又是个比较晦涩的名词,和其对应的是本地过程调用(LPC,Local Procedure Call)。简单地说,如果需要和其它的控制器或节点进行交互,那么就需要RPC。

通过RPC来请求其它节点上的服务或数据,基于Request/Response的模式来实现(左下图示)客户端发送请求,服务器接受请求并处理,然后返回结果给客户端。在SOME/IP中,除了这种同步调用的方式,还支持异步调用的Fire&Forget(右下图示),客户端发送请求后,无需等待服务器处理请求,可以继续执行其他操作,同时服务器也无需返回处理结果(request-no-return)。相较于Request/Response,Fire&Forget方式对系统性能和资源的要求更低。

(3)服务发现(Service Discovery)

服务发现(Service Discovery,SD)可以认为是SOME/IP协议的核心,其提供了一种可以动态的发现和获取服务状态的机制。

所谓面向服务的通信,首先需要获取网络中都有什么服务,并且需要知道服务的状态和提供方,然后才可以去使用和消费这个服务。通过SOME/IP SD,可以将自身能提供的服务以及服务的状态告诉网络中的其它节点,同时,当想要主动寻找某个服务的时候,也可以通过SOME/IP SD去实现。

(4)发布/订阅(Publish/Subscribe)

发布和订阅也是由SOME/IP SD实现的。上文中提到,SOME/IP可以实现只在需要的时候才进行数据的发送,这主要归功于发布/订阅的机制。客户端在发现想要使用的服务后,会对服务进行订阅,当满足服务的触发条件时,服务器就会将客户端所需的服务内容发出。发送的方式是单向的事件型通知,对于客户端来说,只需要订阅一次即可。这同样是一个动态的过程,当客户端不需要使用服务的时候,也可以停止订阅该服务。

(5)TP传输协议(Transport Protocol)

SOME/IP-TP是SOME/IP在数据传输层面定义的规则,主要用于解决数据有可能被分片的问题。在网络层,数据都是通过IP协议传输的,由于链路MTU的限制,导致可能会出现IP分片。由于IP分片存在诸多的问题,为了防止IP出现分片的情况,所以设计了SOME/IP-TP,可以简单理解成TP是SOME/IP自己的分片传输机制。

关于SOME/IP更多知识内容的介绍,请看下回。

这篇关于软考 系统架构设计师系列知识点之SOME/IP与DDS(2)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1010301

相关文章

在C#中获取端口号与系统信息的高效实践

《在C#中获取端口号与系统信息的高效实践》在现代软件开发中,尤其是系统管理、运维、监控和性能优化等场景中,了解计算机硬件和网络的状态至关重要,C#作为一种广泛应用的编程语言,提供了丰富的API来帮助开... 目录引言1. 获取端口号信息1.1 获取活动的 TCP 和 UDP 连接说明:应用场景:2. 获取硬

JAVA系统中Spring Boot应用程序的配置文件application.yml使用详解

《JAVA系统中SpringBoot应用程序的配置文件application.yml使用详解》:本文主要介绍JAVA系统中SpringBoot应用程序的配置文件application.yml的... 目录文件路径文件内容解释1. Server 配置2. Spring 配置3. Logging 配置4. Ma

2.1/5.1和7.1声道系统有什么区别? 音频声道的专业知识科普

《2.1/5.1和7.1声道系统有什么区别?音频声道的专业知识科普》当设置环绕声系统时,会遇到2.1、5.1、7.1、7.1.2、9.1等数字,当一遍又一遍地看到它们时,可能想知道它们是什... 想要把智能电视自带的音响升级成专业级的家庭影院系统吗?那么你将面临一个重要的选择——使用 2.1、5.1 还是

高效管理你的Linux系统: Debian操作系统常用命令指南

《高效管理你的Linux系统:Debian操作系统常用命令指南》在Debian操作系统中,了解和掌握常用命令对于提高工作效率和系统管理至关重要,本文将详细介绍Debian的常用命令,帮助读者更好地使... Debian是一个流行的linux发行版,它以其稳定性、强大的软件包管理和丰富的社区资源而闻名。在使用

Ubuntu系统怎么安装Warp? 新一代AI 终端神器安装使用方法

《Ubuntu系统怎么安装Warp?新一代AI终端神器安装使用方法》Warp是一款使用Rust开发的现代化AI终端工具,该怎么再Ubuntu系统中安装使用呢?下面我们就来看看详细教程... Warp Terminal 是一款使用 Rust 开发的现代化「AI 终端」工具。最初它只支持 MACOS,但在 20

windows系统下shutdown重启关机命令超详细教程

《windows系统下shutdown重启关机命令超详细教程》shutdown命令是一个强大的工具,允许你通过命令行快速完成关机、重启或注销操作,本文将为你详细解析shutdown命令的使用方法,并提... 目录一、shutdown 命令简介二、shutdown 命令的基本用法三、远程关机与重启四、实际应用

Debian如何查看系统版本? 7种轻松查看Debian版本信息的实用方法

《Debian如何查看系统版本?7种轻松查看Debian版本信息的实用方法》Debian是一个广泛使用的Linux发行版,用户有时需要查看其版本信息以进行系统管理、故障排除或兼容性检查,在Debia... 作为最受欢迎的 linux 发行版之一,Debian 的版本信息在日常使用和系统维护中起着至关重要的作

shell脚本快速检查192.168.1网段ip是否在用的方法

《shell脚本快速检查192.168.1网段ip是否在用的方法》该Shell脚本通过并发ping命令检查192.168.1网段中哪些IP地址正在使用,脚本定义了网络段、超时时间和并行扫描数量,并使用... 目录脚本:检查 192.168.1 网段 IP 是否在用脚本说明使用方法示例输出优化建议总结检查 1

Redis连接失败:客户端IP不在白名单中的问题分析与解决方案

《Redis连接失败:客户端IP不在白名单中的问题分析与解决方案》在现代分布式系统中,Redis作为一种高性能的内存数据库,被广泛应用于缓存、消息队列、会话存储等场景,然而,在实际使用过程中,我们可能... 目录一、问题背景二、错误分析1. 错误信息解读2. 根本原因三、解决方案1. 将客户端IP添加到Re

SpringBoot实现基于URL和IP的访问频率限制

《SpringBoot实现基于URL和IP的访问频率限制》在现代Web应用中,接口被恶意刷新或暴力请求是一种常见的攻击手段,为了保护系统资源,需要对接口的访问频率进行限制,下面我们就来看看如何使用... 目录1. 引言2. 项目依赖3. 配置 Redis4. 创建拦截器5. 注册拦截器6. 创建控制器8.