SOME/IP SD 协议介绍(四)服务发现通信行为

服务发现通信行为

启动行为

服务发现将根据服务实例处于以下三个阶段之一:
• 初始等待阶段
• 重复阶段
• 主要阶段

一旦系统启动并且用于服务实例的接口连接已建立,服务发现将进入该服务实例的初始等待阶段。

在进入初始等待阶段并在发送第一条服务实例的消息之前,服务发现实现应根据初始延迟(INITIAL_DELAY)进行等待。

初始延迟(INITIAL_DELAY)应定义为最小延迟和最大延迟。

等待时间应通过在最小延迟和最大延迟之间选择一个随机值来确定。

为了将不同类型的多个条目合并为较少的消息数,服务发现应使用相同的随机值。

在发送第一条消息之后,进入该服务实例/这些服务实例的重复阶段。

服务发现实现应根据 REPETITIONS_BASE_DELAY 在重复阶段进行等待。

在重复阶段发送的消息之间的延迟会加倍。

在重复阶段期间,服务发现应仅发送 REPETITIONS_MAX 个数据包。

如果 REPETITIONS_MAX 设置为0,则应跳过重复阶段,并在初始等待阶段后进入服务实例的主要阶段。

在重复阶段之后,将进入服务实例的主要阶段。

在重复阶段,如果配置了 CYCLIC_OFFER_DELAY,则应周期性地发送Offer Messages和Publish Messages。

在进入主要阶段后,等待1*CYCLIC_OFFER_DELAY时间后再发送第一条消息。

在发送特定服务实例的消息后,服务发现会在发送下一条服务实例的消息之前等待1*CYCLIC_OFFER_DELAY时间。

对于请求/订阅,应使用参数CYCLIC_REQUEST_DELAY实现与Offer相同的周期行为,而不是CYCLIC_OFFER_DELAY。

示例:

初始等待阶段:

• 等待范围为(INITIAL_DELAY_MIN, _MAX)的随机延迟

• 发送消息

重复阶段 (REPETITIONS_BASE_DELAY=100ms, REPETITIONS_MAX=2):

• 等待 2^0*100ms

• 发送消息

• 等待 2^1*100ms

• 发送消息

• 等待 2^2*200ms

主要阶段 (只要消息处于活动状态且定义了CYCLIC_OFFER_DELAY):

• 发送消息

• 等待 CYCLIC_OFFER_DELAY

服务器响应行为

服务发现应该延迟多播/广播应答,以响应对于查找服务条目和查找事件组条目的请求,以及对于请求服务条目和订阅事件组条目的多播/广播应答。延迟的时间由REQUEST_RESPONSE_DELAY定义。

如果通过单播消息回答单播消息,则不应用REQUEST_RESPONSE_DELAY。

延迟仅适用于Instance ID设置为ANY(0xFFFF)的查找服务和查找事件组消息。

Instance ID非0xFFFF的查找服务和查找事件组消息应立即回答,无需延迟。

REQUEST_RESPONSE_DELAY应指定最小值和最大值。

实际延迟时间应在REQUEST_RESPONSE_DELAY的最小值和最大值之间随机选择。

如果上次提供的服务是在发送上次消息时距离1/2 CYCLIC_OFFER_DELAY之内(对于请求/订阅则是1/2 CYCLIC_REQUEST_DELAY之内),则接收到Unicast标志设置为1的查找消息应以单播响应方式回答。

如果上次提供的服务是在1/2 CYCLIC_OFFER_DELAY或更长时间之前发送的(对于请求/订阅是1/2 CYCLIC_REQUEST_DELAY或更长时间之前),则接收到Unicast标志设置为1的查找消息应以多播响应方式回答。

接收到Unicast标志设置为0(多播)的查找消息应以多播响应方式回答。

状态机

在本节中,将展示客户端和服务器的状态机。

图片

图片

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

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

相关文章

【C++栈和队列:数据结构中的经典组合,高效处理先进先出与后进先出问题的最佳方案】

[本节目标] 1. stack的介绍和使用 2. queue的介绍和使用 3. priority_queue的介绍和使用 4. 容器适配器 1. stack的介绍和使用 1.1 stack的介绍 1. stack是一种容器适配器,专门用在具有后进先出操作的上下文环境中,其删除只能从容器的一端进行元素的…

c语言--求第n个斐波那契数列(递归、迭代)

目录 一、概念二、用迭代求第n个斐波那契数1.分析2.完整代码3.运行结果4.如果求第50个斐波那契数呢?看看会怎么样。4.1运行结果:4.2画图解释 三、用迭代的方式求第n个斐波那契数列1.分析2.完整代码3.运行结果4.求第50个斐波那契数4.1运行结果4.2运行结果…

2024/2/3 牛客寒假算法基础集训营1

目录 why买外卖 G-why买外卖_2024牛客寒假算法基础集训营1 (nowcoder.com) 要有光 L-要有光_2024牛客寒假算法基础集训营1 (nowcoder.com) why买外卖 G-why买外卖_2024牛客寒假算法基础集训营1 (nowcoder.com) 题目要求:这道题要求计算鸡排最贵为多少 思路&a…

C语言经典面试题——翻转单词顺序VS左旋转字符串

目录 1. 翻转单词顺序1.1 题目描述1.2 解法1.3 完整代码 2. 左旋转字符串2.1 题目描述2.1.1 解法一:2.1.2 解法二:2.1.2.1 strcpy2.1.2.2 strcat2.1.2.3 完整代码 2.1.3 解法三: 1. 翻转单词顺序 1.1 题目描述 输入一个英文句子,…

AI专题:2023年AI和标准化网络安全报告

今天分享的是AI系列深度研究报告:《AI专题:2023年AI和标准化网络安全报告》。 (报告出品方:enisa) 报告共计:37页 文件目的和目标 本文件的总体目标是概述与人工智能(AI)网络安全有关的标准(现有的、正在…

作业2024/2/3

第二章 引用内联重载 一.选择题 1、适宜采用inline定义函数情况是(C) A. 函数体含有循环语句 B. 函数体含有递归语句 C. 函数代码少、频繁调用 D. 函数代码多、不常调用 2、假定一个函数为A(int i4, int j0) {;}, 则执行“A (1);”语句…

三路快排解决TopK问题

前言: 我们首先要明白什么是三路快排,什么是topk问题。 三路快排: 思想: 三路快排就是数组分3块,三个指针,先随机取一个基准值key,然后将数组划分为3个部分: 【小于key】【等于…

【八大排序】冒泡排序 | 快速排序 + 图文详解!!

📷 江池俊: 个人主页 🔥个人专栏: ✅数据结构冒险记 ✅C语言进阶之路 🌅 有航道的人,再渺小也不会迷途。 文章目录 交换排序一、冒泡排序1.1 算法步骤 动图演示1.2 冒泡排序的效率分析1.3 代码实现1.4 …

【Vue】组件间通信的7种方法(全)

目录 组件之前的通信方法 1. props/$emit 2.parent/children 3.ref 4.v-model 5.sync 6.attrs,attrs,attrs,listeners 7.provide/inject 7.eventBus 组件之前的通信方法 1. props/$emit 父传子 props 这个只能够接收父组件传来的数据 不能进行修改 可以静态传递 也可…

【计算机视觉】目标检测 |滑动窗口算法、YOLO、RCNN系列算法

一、概述 首先通过前面对计算机视觉领域中的卷积神经网络进行了解和学习,我们知道,可以通过卷积神经网络对图像进行分类。 如果还想继续深入,会涉及到目标定位(object location)的问题。在图像分类的基础上(Image classification)的基础上…

Maven快速入门——基础篇

本篇对Maven基础进行总结,主要对Maven的定义、作用、Maven坐标、依赖管理、依赖配置、依赖传递特性以及Maven的生命周期进行总结,后面会对springboot以及Maven高级进行总结。 文章目录 目录 一、Maven是什么? 二、Maven的作用: 三…

基于YOLOv8深度学习的水稻叶片病害智能诊断系统【python源码+Pyqt5界面+数据集+训练代码】深度学习实战

《博主简介》 小伙伴们好,我是阿旭。专注于人工智能、AIGC、python、计算机视觉相关分享研究。 ✌更多学习资源,可关注公-仲-hao:【阿旭算法与机器学习】,共同学习交流~ 👍感谢小伙伴们点赞、关注! 《------往期经典推…

openGauss学习笔记-213 openGauss 性能调优-总体调优思路

文章目录 openGauss学习笔记-213 openGauss 性能调优-总体调优思路213.1 调优思路概述213.2 调优流程 openGauss学习笔记-213 openGauss 性能调优-总体调优思路 213.1 调优思路概述 openGauss的总体性能调优思路为性能瓶颈点分析、关键参数调整以及SQL调优。在调优过程中&…

python使用两个栈实现队列

这里主要是使用两个栈来实现一个队列,并实现队列的入队和出队函数。 对于一个单词hello,如果正常情况下按照队列中先进先出的特点,会按照hello的顺序入队,同样也会按照hello的顺序出队。 添加图片注释,不超过 140 字(可选) 因此如果想要利用两个栈来形成队列,就要将后…

基于SpringBoot+Vue的高校在线答疑管理系统

末尾获取源码作者介绍:大家好,我是墨韵,本人4年开发经验,专注定制项目开发 更多项目:CSDN主页YAML墨韵 学如逆水行舟,不进则退。学习如赶路,不能慢一步。 目录 一、项目简介 二、开发技术与环…

前端学习笔记 | 响应式网页+Boostrap

一、响应式网页 一套代码适应多端 1、媒体查询media(条件){css} max-width 小于等于max-width生效min-width 【案例】左侧隐藏 因为CSS的层叠性,书写顺序:max-width从大到小;min-width从小到大。 【媒体查询完整写法】 在html中link用于不同…

JSP和JSTL板块:第二节 JSP的指令和动作 来自【汤米尼克的JAVAEE全套教程专栏】

JSP和JSTL板块:第二节 JSP的指令和动作 一、page指令:页面设置(1)导入包:import属性(2)设定字符集:pageEncoding属性(3)设定错误页面:errorPage/i…

Docker上安装配置tomcat

目录 1. 拉取镜像 2. 创建运行镜像 3. 查看是否创建成功 ps:如果出现404错误 tomcat目录结构 1. 拉取镜像 这里使用 tomcat:8.5.40 版本作为安装 docker pull tomcat:8.5.40 2. 创建运行镜像 docker run -d --name tomcat -p 8080:8080 \--privilegedtrue …

day07-CSS高级

01-定位 作用:灵活的改变盒子在网页中的位置 实现: 1.定位模式:position 2.边偏移:设置盒子的位置 left right top bottom 相对定位 position: relative 特点: 不脱标,占用自己原来位置 显示模…

题目:有1,2,3,4共四个数字,能组成多少个不相同而且无重复数字的三位数有多少个,都是多少?lua

这是作者的思路, 创建三个表, 第一个数是从四个数遍历, 第二个是数剔除第一个数进行遍历 第三个是剔除第一第二个数遍历 脚本如下 local a{1,2, 3, 4} local b{} local c{} local d{} local function copy(tbl) local ctbl{} for k,v in…
最新文章