SOME/IP SD 协议介绍(六)

使用SOME/IP和SOME/IP-SD进行发布/订阅

与SOME/IP的请求/响应机制相比,可能存在一种情况,即客户端需要从服务器获取一组参数,但不想每次都请求这些信息。这些被称为通知,并涉及事件和字段。

客户端可以在运行时使用SOME/IP-SD向服务器注册,以便接收通知。

此功能与MOST领域中所称的"通知服务"类似,但并非完全相同。

通过SOME/IP-SD消息PublishEventgroup,服务器提供向客户端推送通知的功能。

当通知服务的服务器启动(例如重置后),它应向网络发送一个SOME/IP-SD PublishEventgroup消息,以发现对所提供的事件和字段感兴趣的所有实例。

基于SD的通知中,每个客户端都实现了特定的服务接口,用于接收他们希望收到的通知,并使用SOME/IP-SD SubscribeEventgroup消息来表达他们希望接收此类通知的意愿。

每个客户端应该在服务器发送的SOME/IP-SD PublishEventgroup消息之后,通过发送SOME/IP-SD SubscribeEventgroup消息来表明它仍然对接收该事件组的通知/事件感兴趣。

如果客户端能够可靠地通过SOME/IP-SD消息中的重新启动标志检测到服务器的重新启动,则客户端可以选择只在服务器重新启动后回复PublishEventgroup消息。客户端必须确保这种方式在服务器的SOME/IP-SD消息丢失时也能可靠工作。

服务器在发送SOME/IP-SD PublishEventgroup消息时必须维护该事件组实例的SubscribeEventgroup消息的状态,以便知道是否需要发送通知/事件。

客户端可以通过发送TTL=0(停止服务提供)的SOME/IP-SD SubscribeEventgroup消息从服务器注销。

上图中 server 发送的应该是 SubscribeEventgroupAck + Events.

如果服务器在发送推送消息后收到相关的SOME/IP错误,服务器上的SOME/IP-SD将删除该订阅。

如果服务器在以太网链路上失去连接,它将删除所有已注册的通知。

如果服务器的以太网链路重新连接,它将触发一个SOME/IP-SD PublishEventgroup消息。

在没有收到已订阅的事件组的通知/事件一段时间后,ECU应发送一个新的SubscribeEventgroup消息。对于每个事件组,超时时间应可配置。

客户端以太网链路的连接恢复事件应启动初始等待阶段(考虑UDP-NM和其他因素)。按照上述描述发送SOME/IP-SD SubscribeEventgroup消息。

客户端发送SubscribeEventgroup消息后,服务器应发送SubscribeEventgroupAck,并考虑指定的延迟行为。

如果初始值是一个关注的问题(例如,字段),服务器应立即发送第一个通知/事件;即event。如果客户端在可配置的超时时间内没有收到通知/事件,客户端应重复发送SubscribeEventgroup消息。

客户端向服务器注册以接收通知的过程可能是隐式的,即机制是预先配置的。

为了清理过时的客户端注册(以避免监听器列表随时间而填满),需要一种清理机制。

相关推荐
Cult Of1 分钟前
一个最小可扩展聊天室系统的设计与实现(Java + Swing + TCP)(2)
java·jvm·tcp/ip
科技块儿5 分钟前
平台需展示用户IP属地,如何操作?
网络·网络协议·tcp/ip
程序猿编码9 分钟前
深入浅出Linux内核级防火墙:IP/端口黑白名单的高性能实现
linux·c语言·c++·tcp/ip·内核
..过云雨10 分钟前
数据链路层核心全解:以太网、MAC 地址、MTU 与 ARP 协议深度剖析
网络·网络协议·tcp/ip·计算机网络
NaclarbCSDN10 分钟前
OSI模型与TCP/IP模型
网络·网络协议·tcp/ip
RisunJan10 分钟前
Linux命令-lnstat(显示 Linux 网络统计信息)
linux·运维·网络
一路往蓝-Anbo16 分钟前
第 4 篇:策略模式 (Strategy) —— 算法的热插拔艺术
网络·驱动开发·stm32·嵌入式硬件·算法·系统架构·策略模式
Fᴏʀ ʏ꯭ᴏ꯭ᴜ꯭.19 分钟前
Keepalived高可用配置指南
服务器·网络·php
2401_8322981021 分钟前
腾讯云第九代CVM,玄灵网卡加持重构算力新范式
网络
Cloud Traveler26 分钟前
Archcraft携手cpolar打造轻量化远程开发环境
网络·云原生·eureka