通信易懂唠唠SOME/IP——SOME/IP-SD报文格式

一 服务发现作用

• Locate service instances.确定服务的位置

• Detect if service instances are running.检测服务实例是否在运行

• Implement the Publish/Subscribe handling.实现发布和订阅的处理

        服务发现的主要作用,是确认服务的可用性且控制发送event消息的行为。大白话就是:

1.对客户端来说,发现所需要的服务是否有效。

2.对服务端来说,只给对event感兴趣的(即订阅了eventgroup的)客户端发送someip event。

二、服务发现报文格式

2.1 SOME/IP-SD服务发现通信位于应用层

SOME/IP-SD服务发现与SOME/IP通信一样是位于计算机网络的五层协议模型应用层的。实际上SOME/IP-SD是基于someip协议的。可以理解为SOME/IP-SD报文是特殊的SOME/IP报文,特殊在SOME/IP 的报文头某些字段是固定值,payload是固定格式来存放服务发现的内容。SOME/IP 是支持tcp或者udp通信的,但SOME/IP-SD仅使用udp通信

2.2 some/ip-sd 报文格式

SOME/IP SD 报文格式

SOME/IP-SD 报文的格式如上图所示,分为4部分SOME/IP header,SOME/IP-SD header和SOME/IP-SD entry array、SOME/IP-SD option array。

2.2.1服务发现中的SOME/IP header

  • Message ID (Service ID/Method ID) [32 bit]: 0xFFFF 8100

如2.1部分提到的,SOME/IP-SD报文的格式是和SOME/IP报文是一样的,是特殊的SOME/IP报文。比如some/ip通信阶段。message id存储的是实际通信的service id和method id,而在some/ip sd中是固定的0xFFFF 8100

  • Length [32 bit]

报文长度。单位是字节。计算的是从length后的第一个元素开始,到SOME/IP-SD报文结束。即上图中的Request ID到Options Array。其中Entries Array和Options Array是可变的,和该条服务发现包含几个entry(服务发现应该支持多个entry  组合在一个服务发现消息中 )以及实际服务发现的内容有关,其余的部分是固定长度的共28bytes(SOME/IP head 16 +SOME/IP-SDheader 4 + Length of Entries Array 4+Length of Options Array4)

  • Request ID (Client ID/Session ID) [32 bit]

     Client ID 0.或者设置中其他已经配置的前缀值

        这里我本人也有一些疑惑,someip协议规范上如下图

        应该有一个0x0000的client id??也可以是配置的的前缀的client id??意思是说可以设置为0也可以自己配成固定前缀的值吗,比如0x10000001,0x10000002,0x10000003这也吗?

   Session-ID,对每一个服务的someip sd报文,该值从1递增到65535,再回归1重新递增。

“每一个服务someip sd报文”的意思是:可能ecu提供两个个someip服务A和B,其中A的sd报文sesion-id和B的sd报文的session-id是单独计数的。

  •  Protocol Version [8 bit]: 0x01<
403 StatusForbidden是指在HTTP协议中的一个错误状态码,表示请求被服务器拒绝。这通常是因为服务器认为客户端没有访问特定资源的权限,因此拒绝了请求。在网页浏览器中,当用户尝试访问某个网页或目录,但没有足够的权限时,就会收到403 Forbidden错误。对于Python中的HTTP请求,也可以使用http.HTTPStatus.FORBIDDEN来表示403禁止的错误状态。如果遇到403 Forbidden错误,客户端可以尝试以下解决方案:检查URL是否正确,检查访问的资源是否需要特定的身份验证信息,尝试清除浏览器的缓存和Cookie,或者联系网站管理员以获取更多帮助。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *3* [HTTP 403禁止状态代码和修复错误](https://blog.csdn.net/cunjiu9486/article/details/109076494)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"] - *2* [又十一了,唠唠程序员回家相亲那些段子](https://blog.csdn.net/qq_39390545/article/details/120563240)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值