SOME/IP SD 协议介绍(三)服务发现消息

服务发现消息

使用先前指定的头部格式,可以构建不同的条目和由一个或多个条目组成的消息。具体的条目和它们的头部布局在下面的章节中进行解释。

对于所有的条目,应满足以下条件:

• Index First Option Run、Index Second Option Run、Number of Options 1和Number of Options 2应根据链接的选项进行设置。

服务条目

与服务相关的条目应基于SIP_SD_47第46页中指定的Type 1条目格式。

查找服务条目

查找服务条目类型应用于查找服务实例。

查找服务条目应按照以下方式设置条目字段:

• Type应设置为0x00(FindService)。

• Service ID应设置为要查找的服务的服务ID。

• 如果要返回所有服务实例,则Instance ID应设置为0xFFFF。如果只返回单个服务实例,则应设置为特定服务实例的Instance ID。

• Major Version应设置为0xFF,这意味着将返回具有任何版本的服务。如果设置为与0xFF不同的值,将仅返回具有该特定主要版本的服务。

• Minor Version应设置为0xFFFFFFFF,这意味着将返回具有任何版本的服务。如果设置为与0xFFFFFFFF不同的值,则仅返回具有该特定次要版本的服务。

ID: SIP_SD_246

• TTL应设置为Find Service Entry的生命周期。在此生命周期之后,将认为Find Service Entry不存在。

• 如果设置为0xFFFFFF,则将认为Find Service Entry在下次重启之前有效。

• TTL不应设置为0x000000,因为这被视为此条目的停止条目。

停止查找服务条目

停止查找服务条目类型应用于停止查找服务实例。

停止查找服务条目应在与可选的服务目录进行通信时使用(未来的用例)。

停止查找服务条目应与它们停止的查找服务条目完全相同,除了:

• TTL应设置为0x000000。

提供服务条目

提供服务条目类型应用于向其他通信伙伴提供服务。

ID: SIP_SD_253

提供服务条目应按照以下方式设置条目字段:

ID: SIP_SD_254

• Type应设置为0x01(OfferService)。

ID: SIP_SD_255

• Service ID应设置为提供的服务实例的服务ID。

ID: SIP_SD_257

• Instance ID应设置为提供的服务实例的实例ID。

• Major Version应设置为提供的服务实例的主要版本。

• Minor Version应设置为提供的服务实例的次要版本。

• TTL应设置为服务实例的生命周期。在此生命周期之后,将认为服务实例不再提供。

• 如果设置为0xFFFFFF,则将认为提供服务条目在下次重启之前有效。

• TTL不应设置为0x000000,因为这被视为此条目的停止条目。

提供服务条目应始终引用IPv4和/或IPv6 Endpoint选项。

停止提供服务条目

停止提供服务条目类型应用于停止提供服务实例。

停止提供服务条目应与它们停止的提供服务条目完全相同,除了:

• TTL应设置为0x000000。

请求服务条目

请求服务条目类型应用于指示需要一个服务实例。

如果ECU被配置为这样做,ECU应该考虑请求服务条目作为启动指定服务实例的原因。

请求服务条目应按照以下方式设置条目字段:

• Type应设置为0x02(RequestService)

• Service ID应设置为所请求的服务实例的服务ID。

• Instance ID应设置为所请求的服务实例的实例ID。

• Major Version应设置为0xFF(任意)。

• Minor Version应设置为0xFFFFFFFF(任意)。

• TTL应设置为请求的生命周期。在此生命周期之后,将认为服务请求不存在。这可能导致ECU关闭先前请求的服务。

• 如果设置为0xFFFFFF,则将认为请求服务条目在下次重启之前有效。

• TTL不应设置为0x000000,因为这被视为此条目的停止条目。

停止请求服务条目

停止请求服务条目类型应用于停止请求。

停止请求服务条目应与它们停止的请求服务条目完全相同,除了:

• TTL应设置为0x000000。

请求服务确认(RequestServiceAck)条目

请求服务确认条目类型应用于指示请求服务条目已被接受。

请求服务确认条目应按照以下方式设置条目字段:

• Type应设置为0x03(RequestServiceAck)。

• Service ID、Instance ID、Major Version、Minor Version和TTL应与所回答的请求中的相同。

请求服务否定确认(RequestServiceNack)条目

请求服务否定确认条目类型应用于指示请求服务条目未被接受。

请求服务否定确认条目应按照以下方式设置条目字段:

• Type应设置为0x03(RequestServiceAck)。

• Service ID、Instance ID、Major Version和Minor Version应与所回答的请求中的相同。

• TTL应设置为0x000000。

事件组条目

与服务相关的条目遵循SIP_SD_109第47页中指定的类型2条目格式。

查找事件组条目

查找事件组条目类型应用于查找事件组。

查找事件组条目应按照以下方式设置条目字段:

• Type应设置为0x04(FindEventgroup)。

• Service ID应设置为包含要查找的事件组的服务的服务ID。

• 如果要返回所有服务实例的事件组,则Instance ID应设置为0xFFFF。如果要返回单个服务实例的事件组,则应将其设置为特定服务实例的实例ID。

• Major Version应设置为0xFF,表示将返回任何版本的事件组。如果设置为与0xFF不同的值,则只返回具有该特定主要版本的服务的事件组。

• Minor Version应设置为0xFFFFFFFF,表示将返回任何版本的事件组。如果设置为与0xFFFFFFFF不同的值,则只返回具有该特定次要版本的服务的事件组。

• TTL应设置为查找事件组条目的生命周期。在此生命周期之后,将认为查找事件组条目不存在。

• 如果设置为0xFFFFFF,则将认为查找事件组条目在下次重启之前有效。

• TTL不应设置为0x000000,因为这被视为此条目的停止条目。

停止查找事件组条目

停止查找事件组条目类型应用于停止查找事件组。

停止查找事件组条目应在与可选服务目录(未来使用案例)通信中使用。

停止查找事件组条目应与它们停止的查找事件组条目完全相同,除了:

• TTL应设置为0x000000。

发布事件组条目

发布事件组条目类型应用于向其他通信伙伴提供事件组。这种条目类型可以与提供服务条目类型类似。

发布事件组条目应按照以下方式设置条目字段:

• Type应设置为0x05(PublishEventgroup)。

• Service ID应设置为包含已发布事件组的服务实例的服务ID。

• Instance ID应设置为包含已发布事件组的服务实例的实例ID。

• Major Version应设置为包含已发布事件组的服务实例的主要版本。

• Minor Version应设置为包含已发布事件组的服务实例的次要版本。

• TTL应设置为事件组的生命周期。在此生命周期之后,将认为事件组未被发布。

• 在大多数使用情况下,事件组的生命周期与其所属的服务实例相同。不允许事件组的生命周期比其所属的服务实例的生命周期更长。

• 如果设置为0xFFFFFF,则将认为发布事件组条目在下次重启之前有效。

• TTL不应设置为0x000000,因为这被视为此条目的停止条目。

如果事件组通过组播或广播方式提供,则发布事件组条目应引用IPv4和/或IPv6端点选项。

停止发布事件组条目

停止发布事件组条目类型应用于停止发布事件组。

停止发布事件组条目应与它们停止的发布事件组条目完全相同,除了:

• TTL应设置为0x000000。

订阅事件组条目

订阅事件组条目类型应用于订阅事件组。这可以视为与请求服务条目类型类似。

订阅事件组条目应按照以下方式设置条目字段:

• Type应设置为0x06(SubscribeEventgroup)。

• Service ID应设置为包含被订阅事件组的服务实例的服务ID。

• Instance ID应设置为包含被订阅事件组的服务实例的实例ID。

• Major Version应设置为包含被订阅事件组的服务实例的主要版本。

• Minor Version应设置为包含被订阅事件组的服务实例的次要版本。

• TTL应设置为事件组的生命周期。在此生命周期之后,将认为事件组未被订阅。

• 如果设置为0xFFFFFF,则将认为订阅事件组条目在下次重启之前有效。

• TTL不应设置为0x000000,因为这被视为此条目的停止条目。

订阅事件组条目应引用IPv4和/或IPv6端点选项。

停止订阅事件组条目

停止订阅事件组条目类型应用于停止订阅事件组。

停止订阅事件组条目应与它们停止的订阅事件组条目完全相同,除了:

• TTL应设置为0x000000。

订阅事件组确认(SubscribeEventgroupAck)条目

请求事件组确认条目类型应用于指示请求事件组条目已被接受。

订阅事件组确认条目应按照以下方式设置条目字段:

• Type应设置为0x07(SubscribeEventgroupAck)。

• Service ID、Instance ID、Major Version、Minor Version和TTL应与所回答的请求中的值相同。

订阅事件组否定确认(SubscribeEventgroupNack)条目

请求事件组否定确认条目类型应用于指示请求事件组条目未被接受。

请求事件组否定确认条目应按照以下方式设置条目字段:

• Type应设置为0x07(SubscribeEventgroupAck)。

• Service ID、Instance ID、Major Version和Minor Version应与所回答的请求中的值相同。

• TTL应设置为0x000000。

相关推荐
Cx330❀12 小时前
【Linux网络】网络层协议 IP :从网络层原理到 Linux 内核源码
linux·运维·服务器·网络·tcp/ip·ai·ai编程
ITxiaobing202313 小时前
广告归因场景下的IP情报工程化:提升AppsFlyer P360匹配精度的实践思路
大数据·人工智能·tcp/ip
CC城子17 小时前
EtherNet/IP I/O 丢包排查(linux系统)
linux·单片机·tcp/ip·ethernetip
M78佐菲17 小时前
HTML学习笔记
linux·笔记·学习·tcp/ip·html
酒神dnspup20 小时前
DNSPup 免费体验监控指南:证书、DNS、IP、端口和网页一站式监控
网络协议·tcp/ip·iphone·网站监控
Cx330❀20 小时前
【Linux网络】深入TCP协议:从滑动窗口到拥塞控制与性能优化全景解析
linux·开发语言·网络·tcp/ip·ai·性能优化·ai编程
QYRdata1 天前
24.8%复合增速!用量付费办公IT服务2026-2032年发展势头强劲
网络·人工智能·服务发现
小此方1 天前
Linux网络(七):从 Socket 封装到应用层协议:手写网络版计算器,彻底搞懂 TCP 通信、序列化与反序列化
linux·网络·tcp/ip
春风解人意1 天前
从零开始学习嵌入式P32----网络基础之TCP
c语言·网络·学习·tcp/ip
晊晌_h2 天前
嵌入式从0到精通——Linux C|TCP 并发服务器实现方案详解
服务器·开发语言·tcp/ip